/*
* 說明:經過本函式處理後,陣列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號,不信話你去找本書翻到背面看看 當然有一些好書會有很多同學都喜歡,這樣就會收集到很...