快速排序QuickSort

来源:互联网 发布:网络平台推广好做吗 编辑:程序博客网 时间:2024/06/05 04:34
void Qsort(int * numbers,int low,int high){if(low<high){  int i=low+1,j=high;int ran; ran = (low + high) / 2; swap(&numbers[ran], &numbers[low]); int key = numbers[low];while(i<=j){ while((numbers[j]>key)&&(low<=j))j--; while((numbers[i]<=key)&&(i<=high))//note: either i, or j >= or <=,or will cause infinite loop when numbers have //same number. i++; if (i < j) { swap(&numbers[i],&numbers[j]); swap(&orders[i], &orders[j]); } }swap(&numbers[low], &numbers[j]);//swap j!!Qsort(numbers,orders,low,j-1);Qsort(numbers,orders,j+1,high);}}

快速排序中比较快的版本//kind of faster version
0 0
原创粉丝点击