nginx證書配置指南
阿新 • • 發佈:2022-03-02
快速排序
快速排序的基本思想是通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所以資料都比另外一部分的所有資料都要小,然後再按此方法對這兩部分資料分別進行快速排序,整個排序過程可以遞迴進行,以此達到整個資料變成有序序列。
快速排序的流程:
注意:f是表示指的數比標杆值小的下標值,而b是表示指的數比標杆值大的下標值
程式碼示例:
void quick_sort(int parr[], int low, int hight) //快速排序 { int t = parr[low]; //確定標杆值 int f = low + 1; //表示指的數比標杆值小的下標值 int b = hight; //表示指的數比標杆值大的下標值 if (low >= hight) return; //表示只有一個元素,無需定位 int tempval; while (f <= b)//表示待查詢的區間還沒有找完(只有f>b才能算找完) { while (f <= b && parr[f] <= t) f++;//表示區間沒有找完,且f指的數又比標杆小 while (f <= b && parr[b] >= t) b--;//表示區間沒有找完,且b指的數又比標杆大 if (f < b)//定位區間還沒搜尋完,但f指向了比標杆大的數,b指向了比標杆小的數 { tempval = parr[f]; parr[f] = parr[b]; parr[b] = tempval; f++; b--; } } //迴圈完,b指標應該停在了標杆的位置,f指標停在了標杆的下一個位置 parr[low] = parr[b]; parr[b] = t; quick_sort(parr, low, b - 1);//標杆的左邊遞迴 quick_sort(parr, b + 1, hight);//標杆的右邊遞迴 }