快速排序
template <class T> void QuickSort(T *a,int left, int right) { if(left>=right) return; int l = left; int r = right; T pivot = a[left]; while(l!=r) { while(l<r && a[r]>pivot) r--; a[l] = a[r]; while(l<r && a[l]<pivot) l++; a[r] = a[l]; } a[l] = pivot; QuickSort(a,left,l-1); QuickSort(a,l+1,right); } void main() { int a[15] = {3,6,7,8,5,4,9,0,2,1,23,45,28,97,12}; QuickSort(a,0,14); for(int i=0; i<15;i++) printf("%d ",a[i]); printf("\n"); }
浙公网安备 33010602011771号