大話數據結構之:簡單選擇排序

簡單選擇排序

簡單選擇排序法(simple selection sort)就是通過n-i次關鍵字間的比較,從n-i+1個記錄中選出最小關鍵字的記錄,並和第i(1<=i<=n)個記錄交換之。

我們來看代碼:

void simple_selection_cort(int *array, int n)
{
    int min;
    for(int i = 0; i < n; i++){
        min = i; //將當前下標定爲最小值

        for(int j = i+1; j < n; j++){//比較n-i次關鍵字,即循環i之後的關鍵字,找出i之後最小的關鍵字

            if(array[min] > array[j]){//如果有小於當前關鍵字的最小值
                min = j;//將此關鍵字的下標賦值給min
            }
        }

        if(i != min){//如果i不等於min說明找到最小關鍵字,進行交換
            swap(array, i, min);
        }
    }
}

代碼段應該不難理解。
這對數組如:
int array[9] = {4, 2, 1, 3, 6, 9, 8, 7, 5};
第一次4和後面的元素進行比較,找出最小值1的下標,4和1 的下標進行交換;
第二次2爲所有元素中的最小值,i=min,不進行交換;
第三次4和後面的元素進行比較,3爲最小值,4和3的下標進行交換;

以此類推,直到最後一個。則數組排序完成。

簡單選擇排序和冒泡排序相比,簡單選擇排序的性能要優於冒泡排序

發佈了124 篇原創文章 · 獲贊 29 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章