人人都來寫演算法 之 快速排序

2021-09-06 10:19:53 字數 956 閱讀 5313

中午吃飯比較早,利用20分鐘把快速排序寫了下,以說明演算法為主,採用int陣列儲存資料。後續可以在以下兩點優化程式:

1. 採用模板程式設計,支援通用資料型別;

2. 採用函式指標或者函式物件決定排序方式。

#include

using std::cout;

using std::endl;

/** quick sort **/

void swap(int& a, int& b)

int partation(int dataarray, int leftpos, int rightpos)

} swap(dataarray[leftpos], dataarray[last_small]);

return last_small;

} void quicksort(int data, int leftpos, int rightpos)

} int main()

; quicksort(data, 0, count-1);

for(int i = 0; i< count; i++)

getchar();

} /** quick sort **/

void swap(int& a, int& b)

int partation(int dataarray, int leftpos, int rightpos)

}swap(dataarray[leftpos], dataarray[last_small]);

return last_small;

}void quicksort(int data, int leftpos, int rightpos)

}int main()

; quicksort(data, 0, count-1);

for(int i = 0; i< count; i++)

{cout<

人人都來學演算法 之 氣泡排序

冒牌排序是大學學習資料結構最先學習的排序演算法,平均時間效率較快速排序等方法效率低,但是演算法也最簡單,就是每次遍歷都把最大的元素 公升序 交換到當前的最後乙個位置。這個演算法也是筆試中最最常見,難度也是考察程式設計能力的最低要求。include using std cout using std e...

演算法 排序演算法之快速排序

很受打擊啊啊啊啊啊!這道排序題我很久之前就做過,而且當時沒用20分鐘就搞定了,可是,今天在公司做完手上的活之後打算刷題時,又心血來潮的想重做一遍,心想反正也花不了多少時間,結果。血崩了。要求 對於乙個int陣列,請編寫乙個快速排序演算法,對陣列元素排序。給定乙個int陣列a及陣列的大小n,請返回排序...

演算法 排序演算法之快速排序

快速排序是由東尼 霍爾所發展的一種排序演算法。在平均狀況下,排序 n 個專案要 nlogn 次比較。在最壞狀況下則需要 n2 次比較,但這種狀況並不常見。事實上,快速排序通常明顯比其他 nlogn 演算法更快,因為它的內部迴圈 inner loop 可以在大部分的架構上很有效率地被實現出來。快速排序...