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...