快速排序模板

2021-10-18 22:56:29 字數 592 閱讀 3314

#include

#include

using

namespace std ;

const

int n =

1e6+10;

int n ;

int q[n]

;void

quick_sort

(int q,

int l,

int r )

// 左右分別遞迴

quick_sort

( q, l, j )

;quick_sort

( q, j+

1, r )

;// 若為 i,r 則 0,1出現死迴圈

//*** 注意:邊界問題

// x=q[l] 或 x=q[r] 會導致時間複雜度超過

// x=q[l] 時, 分界時若用 i 會導致只有兩個數字排序時出現死迴圈; 應該改為x=q[(l+r+1)/2]

// 同理 x=q[r] 時, 分界若用 j 也會導致死迴圈; 應該改為 x=q[(l+r)/2]

}int

main()

排序 快速排序模板

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

快速排序 模板

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

模板 快速排序

排序演算法可以說是從語言步入演算法的第一道坎了,其中最有代表性的莫過於快排。這裡模擬庫函式自帶sort的呼叫方式,寫起來相當自然清爽。樸素快速排序演算法的複雜度最好為o nlogn 最壞時能達到o n include include include include include include d...