快速排序是在实践中最快的已知排序算法,它的平均时间是O(NlogN),最坏情形为O(N*N)。
程序的重要之处在于找到中枢元素pivot。
C语言程序如下:
typedef int ElementType; void QuickSort(ElementType A[],int left,int right) { int i,j; ElementType pivot; i=left; j=right; pivot=A[left]; if(left>=right) return ; while(i!=j) { while(A[j]>=pivot && j>i) j--; if(j>i) A[i++]=A[j]; while(A[j]<=pivot && j>i) i++; if(j>i) A[j--]=A[i]; } A[i]=pivot; QuickSort(A,left,i-1); QuickSort(A,i+1,right); }