标签:
对于一个int数组,请编写一个快速排序算法,对数组元素排序。
给定一个int数组A及数组的大小n,请返回排序后的数组。
[1,2,3,5,2,3],6
[1,2,2,3,3,5]
代码:
class QuickSort { public: void Qsort(int* A, int l, int r) { if(l>=r) return; else{ int i=l, j=r, x=A[l]; while (i<j){ while(i<j && A[j]>=x) //从右向左找第一个小于x的数 j--; if(i<j) A[i]=A[j]; //若此处为 A[i++]=A[j] => 数组越界 while(i<j && A[i]<x) //从左向右找第一个大于等于x的数 i++; if(i<j) A[j]=A[i]; } A[i]=x; Qsort(A, l, i-1); // 递归调用 Qsort(A, i+1, r); } } int* quickSort(int* A, int n) { Qsort(A,0,n-1); return A; } };
标签:
原文地址:http://www.cnblogs.com/claremore/p/5499061.html