C/C++實現(xiàn)快速排序的方法
快速排序不會直接得到最終結(jié)果,只會把比k大和比k小的數(shù)分到k的兩邊。(你可以想象一下i和j是兩個機(jī)器人,數(shù)據(jù)就是大小不一的石頭,先取走i前面的石頭留出回旋的空間,然后他們輪流分別挑選比k大和比k小的石頭扔給對面,最后在他們中間把取走的那塊石頭放回去,于是比這塊石頭大的全扔給了j那一邊,小的全扔給了i那一邊。只是這次運氣好,扔完一次剛好排整齊。)為了得到最后結(jié)果,需要再次對下標(biāo)2兩邊的數(shù)組分別執(zhí)行此步驟,然后再分解數(shù)組,直到數(shù)組不能再分解為止(只有一個數(shù)據(jù)),才能得到正確結(jié)果。 —— 取自百度百科(鏈接)
C/C++ 實現(xiàn):
void quick_sort(int* a, int low, int high){ if (low >= high) {
return;
} int first = low; int last = high; int key = a[first]; while (first < last) {
while (first < last && a[last] >= key) {
--last;
}
a[first] = a[last];
while (first < last && a[first] <= key) {
++first;
}
a[last] = a[first];
}
a[first] = key;
quick_sort(a, low, first-1);
quick_sort(a, first+1, high);
}
相關(guān)文章
關(guān)于PCL出現(xiàn)"無法找到?pcl_commond.dll?文件程序無法執(zhí)行"的問題及解決方法
這篇文章主要介紹了PCL出現(xiàn)"無法找到?pcl_commond.dll?文件程序無法執(zhí)行"的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07