快速排序模板(C C )

2021-10-19 07:16:49 字數 1033 閱讀 3291

確定分界點x:

調整區間,使得第乙個區間所有數都小於等於x,第二個區間所有數都大於等於x

遞迴處理左右兩邊

#include

using namespace std;

const

int n =

1e5+10;

int n;

int a[n]

;void

quick_sort

(int a,

int l,

int r)

quick_sort

(a,l,i-1)

;quick_sort

(a,i,r);}

intmain()

quick_sort

(a,0

,n-1);

for(i=

0;i)return0;

}

輸入

4

4 3 2 1

輸出

1 2 3 4

#include

int n;

int a[

10000];

//c語言不支援使用const定義陣列

void

quick_sort

(int a,

int l,

int r)

}quick_sort

(a,l,i-1)

;quick_sort

(a,i,r);}

intmain()

quick_sort

(a,0

,n-1);

for(i=

0;i)return0;

}

輸入

4

4 3 2 1

輸出

1 2 3 4

快速排序 C C

快排演算法 快排和冒泡都是基於交換的思想,但是進行了改進,更為高效。流程 1 首先設定乙個分界值,通過分界值將陣列分成左右兩部分。2 將大於或等於分界值的資料集中到陣列右邊,小於分界值的資料集中到陣列的左邊。3 左右兩個部分重複上述排序。從上述流程可以看出,這就是乙個遞迴的過程,遞迴終止即只有乙個元...

排序 快速排序模板

以某個記錄 元素 為界 該記錄稱為支點或樞軸 將待排序列分成兩部分 一部分 所有記錄的關鍵字大於等於支點記錄的關鍵字 另一部分 所有記錄的關鍵字小於支點記錄的關鍵字 演算法描述 1 任取待排序記錄序列中的某個記錄 例如取第乙個記錄 作為基準 樞 按照該記錄的關鍵字大小,將整個記錄序列劃分為左右兩個子...

快速排序 模板

說明 經過本函式處理後,陣列itemarray中元素滿足prulefunc itemarray itemr itemarray iteml 為true,其中itemr iteml template t void quicksort itemarray,int iteml,int itemr,bool...