1. 程式人生 > >算法之選擇排序算法

算法之選擇排序算法

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]);  //移送極值
    }    
    
}

  

     

     

算法之選擇排序算法