算法之選擇排序算法
阿新 • • 發佈:2017-05-30
cts nbsp ack 元素 swap oid light min swa
思路:
選擇排序每次叠代都在尋找剩下的數組元素中的最小值(最大值),依次拿數組中的一個元素和剩下的元素進行比較。然後把該極值移動到數組的另一邊。
原始數組: 5 9 4 6 7 3 2
一次叠代: 2 9 4 6 7 3 5
2 3 4 6 7 9 5
2 3 4 6 7 9 5
2 3 4 5 7 9 6
2 3 4 5 6 9 7
2 3 4 5 6 7 9
template< class T > void selectSort( T Data[], int iLength ) { for( int i = 0; i < iLength; i++ ) { int iMinIndex = i; for (int n= i + 1; n< iLength; n++) { if( Data[n] < Data[iMinIndex] ) { iMinIndex = n; //記錄當前最小值的索引 } } swap( Data[iMinIndex], Data[i]); //移送極值 } }
算法之選擇排序算法