快速排序 模板

2021-06-18 19:14:49 字數 1047 閱讀 4668

/*

* 說明:經過本函式處理後,陣列itemarray中元素滿足prulefunc(itemarray[itemr], itemarray[iteml])為true, 其中itemr 〉iteml; */

template t;

void quicksort(itemarray, int iteml, int itemr, bool(*prulefunc(t, t))

int il = iteml;

int ir = itemr;

int itemk = itemarray[il];

for ( ;il < ir;)

itemarray[il] = itemarray[ir];

// 從左向右尋找第乙個使得prulefunc(itemk, itemarray[il])為false的元素,並將其移動到itemk的右側

while((il < ir) && prulefunc(itemk,itemarray[il]))

itemarray[ir] = itemarray[il]; }

itemarray[il] = itemk;

// 快速排序左側,

quicksort(itemarray, iteml, il - 1, prulefunc);

// 快速排序右側,

quicksort(itemarray, il + 1, itemr, prulefunc); }

1。用例-數字排序

bool pintcmp(int i, int j)

else

} int main(int argc, char* argv) ;

quicksort(atest, 0, 9, pintcmp);

return 0; }

2。用例-字串排序

bool pstrcmp(char *a, char*b)

int main(int argc, char* argv) ;

quicksort(btest, 0, 9, pstrcmp);

return 0; }

排序 快速排序模板

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

模板 快速排序

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

快速排序 模板

小哼買書 標籤 字串 模擬排序 字串處理 詳情 小哼的學校要建立乙個圖書角,老師派小哼去找一些同學做調查,看看同學們都喜歡讀哪些書。小哼讓每個同學寫出乙個自己最想讀的書的isbn號 你知道嗎?每本書都有唯一的isbn號,不信話你去找本書翻到背面看看 當然有一些好書會有很多同學都喜歡,這樣就會收集到很...