讀演算法導論日誌 選擇排序

2021-07-10 03:33:22 字數 1171 閱讀 8833

selectionsort

同樣是一種簡單的演算法,演算法的實質就是不斷地從資料的無序區當中拿出最小(大)的元素並將其依次排列。

selectionsort

依然是乙個複雜度為

o(n^2)

級別的演算法,但是這個演算法和之前的

insertionsort

有一些區別,最主要的區別是比較的順序,

insertionsort

是將無序區的元素拿出放到有序區之中比較,而

selectionsort

是將無序區的元素先比較再依次排列構成有序區,這樣本質性的原因造成了

selectionsort

的最好情況和最壞情況一樣糟糕,而

insertionsort

的t(n)

是與資料輸入敏感的。

pseudocode

/*pseudocode

selectionsort(a)

for i = 1 to a.length - 1

key = i

for j = i to size

if a[key] > a[j]

key = j

exchange a[key] <-> a[i]

*/下面是c++實現** 如有不規範的地方望高人賜教

#include using namespace std;

void selectionsort(int * a , int size);

/*pseudocode

selectionsort(a)

for i = 1 to a.length - 1

key = i

for j = i to size

if a[key] > a[j]

key = j

exchange a[key] <-> a[i]

*/void selectionsort( int *a, int size)

}int arrytest = ;

int main() {

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

cout<<" " << arrytest[i]<<" " ;

selectionsort(arrytest, sizeof(arrytest)/sizeof(arrytest[1]));

cout<

演算法導論 選擇排序 c

到了大三才發現自己大二缺了多少的功課,最近開始看演算法導論,將以前丟掉的拾起來。在看完2.1插入排序之後,做了一下課後習題,看到這個演算法 選擇演算法 選擇演算法的思想是 第一次取得陣列的最小元素,放在第乙個位置。接著取得陣列的第二小元素,放在第二個位置。如此下去,直到找到倒數第二小的元素,放在倒數...

演算法導論 排序演算法總結

從六月初開始看演算法導論,陸陸續續看了有2個月了,但實際看的時間只有半個月左右。這期間都忙著找導師 期末考試,同時還回家修養了十來天。真正專心的看演算法是在離家返校後,由於沒有考試和作業的煩惱,天天都沉浸在演算法中,感覺效率較高。這段時間學到的東西較多,下面來總結一下 比較排序有 插入排序法 合併排...

《演算法導論》 演算法導論2 2 1插入排序

2.1 插入排序。我們分析的第乙個演算法是插入排序演算法,輸入 n個數 a1,a2,a3,a4,a5,a6,a7 an 輸出 序列的乙個排列 即重新排序 a1 a2 a3 使a1 a2 a3 插入排序演算法的偽 是以乙個過程的形式給出的,稱為insertion sort,它的引數是乙個陣列。包括了n...