排序算法(2)-快速排序
2016-06-03 16:09
239 查看
// 快速排序算法 void quickSort(int *b,int left,int right) { if (left<0 || left>right) { return; } int i = left; // 标记开始位置 int j = right; // 标记末尾位置 int key = b[i]; // 选择分治的数据 while (i < j) { while (i < j && key <= b[j]) { // 首先从后往前寻找比制定数据值小的数据 j--; } b[i] = b[j]; while (i < j && key >= b[i]) { // 首先从前往后寻找比制定数据值大的数据 i++; } b[j] = b[i]; } b[i] = key; quickSort(b, left, i-1); quickSort(b, i+1, right); return; }
相关文章推荐
- JavaScript演示排序算法
- 快速排序
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- C#数据结构之顺序表(SeqList)实例详解
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- C#快速排序算法实例分析
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- 经典排序算法之冒泡排序(Bubble sort)代码