快速排序之C

2022-09-14 02:24:14 字數 438 閱讀 9162

通過一趟排序將要排序的資料分成  兩段  ,其中一段的資料均小於另外一段資料,在以此方法對兩段資料相同操作(遞迴)

平均:nlogn

最差情況:o(n^2)

確定分界點 q[i] 可以隨機取,兩個指標,乙個指向頭部,乙個指向尾部

跑一趟後 一側資料全部小於另一側資料

遞迴處理左右兩側資料

#include using namespace std;

const

int n = 1e6+10;

intn;

intq[n];

int quick_sort(int q ,int l ,int

r )

quick_sort(q , l , j);

quick_sort(q , j+1, r);

}int

main()

C 之快速排序

演算法描述 1.假定陣列首位元素為 樞軸 設定數列首位 begin 與末位 end 索引 2.由末位索引對應元素與 樞軸 進行比較,如果末位索引對應元素大於 樞軸 元素,對末位索引減一 end 直到比較出大於 樞軸 元素,將該元素覆蓋到首位,對應索引上的數值空出 3.由首位索引對應元素與 樞軸 進行...

快速排序之C 實現

快速排序之c 實現 一趟快速排序的演算法是 1 設定兩個變數i j,排序開始的時候 i 0,j n 1 2 以第乙個陣列元素作為關鍵資料,賦值給key,即key a 0 3 從j開始向前搜尋,即由後開始向前搜尋 j 找到第乙個小於key的值a j 將a j 和a i 互換 4 從i開始向後搜尋,即由...

C 複習之堆排序 快速排序

堆是具有下列性質的完全二叉樹 每個節點的值都大於或等於其左右孩子節點的值 稱為大頂堆 或者每個節點的值都小於或等於其左右孩子節點的值 稱為小頂堆 堆排序就是利用堆進行排序的方法 基本思想是 將待排序的序列構造成乙個大頂堆 此時 整個序列的最大值就是堆頂的根結點 將它移走 其實就是將其與堆陣列的末尾元...