C/C++實(shí)現(xiàn)快速排序的方法
快速排序不會(huì)直接得到最終結(jié)果,只會(huì)把比k大和比k小的數(shù)分到k的兩邊。(你可以想象一下i和j是兩個(gè)機(jī)器人,數(shù)據(jù)就是大小不一的石頭,先取走i前面的石頭留出回旋的空間,然后他們輪流分別挑選比k大和比k小的石頭扔給對(duì)面,最后在他們中間把取走的那塊石頭放回去,于是比這塊石頭大的全扔給了j那一邊,小的全扔給了i那一邊。只是這次運(yùn)氣好,扔完一次剛好排整齊。)為了得到最后結(jié)果,需要再次對(duì)下標(biāo)2兩邊的數(shù)組分別執(zhí)行此步驟,然后再分解數(shù)組,直到數(shù)組不能再分解為止(只有一個(gè)數(shù)據(jù)),才能得到正確結(jié)果。 —— 取自百度百科(鏈接)
C/C++ 實(shí)現(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)"無(wú)法找到?pcl_commond.dll?文件程序無(wú)法執(zhí)行"的問(wèn)題及解決方法
這篇文章主要介紹了PCL出現(xiàn)"無(wú)法找到?pcl_commond.dll?文件程序無(wú)法執(zhí)行"的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07掌握C++:揭秘寫(xiě)時(shí)拷貝與淺深拷貝之間的關(guān)系
探索C++的奧秘,本指南將揭秘寫(xiě)時(shí)拷貝與淺深拷貝之間的微妙關(guān)系,摸索這些復(fù)雜概念背后的邏輯,讓你的編程技能瞬間提升,來(lái)吧,讓我們一起進(jìn)入這個(gè)引人入勝的C++世界!2024-01-01C語(yǔ)言 文件的隨機(jī)讀寫(xiě)詳解及示例代碼
本文主要介紹C語(yǔ)言 文件的隨機(jī)讀寫(xiě),這里整理了相關(guān)資料及示例代碼以便大家學(xué)習(xí)參考,學(xué)習(xí)此部分內(nèi)容的朋友可以參考下2016-08-08C++實(shí)現(xiàn)循環(huán)隊(duì)列和鏈?zhǔn)疥?duì)列的示例
下面小編就為大家分享一篇C++實(shí)現(xiàn)循環(huán)隊(duì)列和鏈?zhǔn)疥?duì)列的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12