1. 程式人生 > >C 快速排序

C 快速排序

快速排序就是對冒泡法進行一種改進,基本思想基於分治法,在L[1…n]選一個數為基準,比他小的往前,比他大的往後,這樣得到兩個L,在這個兩個L中繼續挑基準,小的往前,大的往後,循序往復,知道只有一個數字就OK了。
程式碼如下

//選擇排序
int Pratition(int a[], int low, int high){
    int pivot = a[low];
    while (low < high) {
        while (low < high && a[high] > pivot) {
            high--;
        }
a[low] = a[high]; while (low < high && a[low] < pivot) { low++; } a[high] = a[low]; } a[low] = pivot; return low; } void QuickSort(int a[], int low, int high) { if(low < high) { int pivotopos = Pratition(a, low, high)
; QuickSort(a, low, pivotopos-1); QuickSort(a, pivotopos+1, high); } } 4210359768 0,5,9 3210459768 0,4,4 0213459768 0,3,3 0213459768 0,0,2 0123459768 1,2,2 0123458769 6,9,9 0123456789 6,8,8 0123456789 6,6,7