快速排序代码实现_我来找茬
2010-10-11 19:15
267 查看
#include <iostream> using namespace std; void qsort(int[], int , int); int main(void) { int array[] = {33,32,34,32,35,32,36}; int len = sizeof(array)/sizeof(int); for (int i = 0 ; i < len ; i ++) cout<<array[i]<<","; cout<<endl; qsort(array,0,len-1); for (int i = 0 ; i < len ; i ++) cout<<array[i]<<","; cout<<endl; return 0; } void qsort(int a[], int left, int right) { int pivot,l,r,temp; l = left; r = right; pivot = a[(left+right)/2]; while (l<r) { while(a[l] < pivot) ++l; while(a[r] > pivot) --r; if (l>=r) break; temp = a[l]; a[l] = a[r]; a[r] = temp; //@2_begin if (a[l] == pivot) --r;//因为还保留着pivot if (a[r] == pivot) ++l; //@2_end //@1_begin //if (l != pivot) // --r;//因为还保留着pivot //if (r != pivot) // ++l; //@1_end } if (l == r) l++; if (left <r)qsort(a,left,l-1); if (l<right)qsort(a,r+1,right); }
钱能著的《C++程序设计教程》中,使用的是@1的代码,但是此处代码的语义不正确,因此改成了@2标注的代码。
我来找茬,呵呵。
相关文章推荐
- 简单的C语言快速排序实现代码
- Quicksort 快速排序—注意点以及代码实现(笔试手写代码)
- 【数据结构与算法】【排序】快速排序的代码实现
- 交换排序——冒泡排序和快速排序,C++代码实现
- 快速排序的C语言代码实现
- 插入排序、冒泡排序、选择排序、希尔排序、快速排序、归并排序、堆排序和LST基数排序的C++代码实现
- 算法代码实现之三向切分快速排序,C/C++实现
- JAVA排序算法实现代码-快速(Quick Sort)排序
- python简洁代码实现快速排序
- Python实现冒泡排序、选择排序、插入排序、快速排序、归并排序、二分法查找算法(基于《算法导论》伪代码)
- 算法代码实现之三向切分快速排序,Golang(Go语言)实现
- Ruby一行代码实现快速排序
- 快速排序--Java实现代码
- 选择,插入,希尔,快速,堆,归并排序六种排序方式的Java 实现和性能对比(付代码)
- 快速排序(quikSort)及java代码实现
- 算法导论第七章-快速排序-Cpp代码实现
- 快速排序(伪代码 c/c++ python 实现)
- 算法代码实现之快速排序,C/C++实现
- 算法代码实现之三向切分快速排序,Java实现
- 快速排序递归与非递归代码实现与思考