C/C++實現(xiàn)快速排序的方法
快速排序不會直接得到最終結果,只會把比k大和比k小的數(shù)分到k的兩邊。(你可以想象一下i和j是兩個機器人,數(shù)據(jù)就是大小不一的石頭,先取走i前面的石頭留出回旋的空間,然后他們輪流分別挑選比k大和比k小的石頭扔給對面,最后在他們中間把取走的那塊石頭放回去,于是比這塊石頭大的全扔給了j那一邊,小的全扔給了i那一邊。只是這次運氣好,扔完一次剛好排整齊。)為了得到最后結果,需要再次對下標2兩邊的數(shù)組分別執(zhí)行此步驟,然后再分解數(shù)組,直到數(shù)組不能再分解為止(只有一個數(shù)據(jù)),才能得到正確結果。 —— 取自百度百科(鏈接)
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);
}
相關文章
C++ 11實現(xiàn)檢查是否存在特定的成員函數(shù)
C++11/14相比以往的C++98/03在很多方面做了簡化和增強,尤其是在泛型編程方面,讓C++的泛型編程的威力變得更加強大,下面這篇文章主要介紹了利用C++ 11實現(xiàn)檢查是否存在特定成員函數(shù)的相關資料,需要的朋友可以參考下。2017-02-02
如何基于 Blueprint 在游戲中創(chuàng)建實時音視頻功能
我們在本文先來講講如何在 Unreal 中用 Blueprint 快速實現(xiàn)。稍后會分享基于 C++的實現(xiàn)步驟。感興趣的朋友跟隨小編一起看看吧2020-05-05

