經典排序演算法之簡單選擇排序(C )

2021-08-18 09:49:17 字數 796 閱讀 6760

簡單選擇排序是一種簡單直觀的排序演算法。

工作原理:

①、將陣列分成兩部分,一部分為已排序好的陣列,一部分為待排序陣列。

②、在待排序陣列中選出乙個最小值(或最大值)將其放入待排序好的陣列中的最前面,然後將已排序陣列加一,待排序陣列減一。

③、重複②操作。

看**:

class program

;xuanze(arr);

}public static void xuanze(int arr)

}int temp = arr[sum];

arr[sum] = arr[i];

arr[i] = temp;

}for (int i = 0; i < arr.length; i++)}}

執行結果為:

時間複雜度分析:

最好情況下全部元素已經有序,交換次數為0,但是比較次數為o(n^2);

最壞情況下全部元素逆序,交換n-1,比較次數依然為o(n^2);

所以最優時間複雜度、最壞時間複雜度和平均時間複雜度均為o(n^2);

演算法的穩定性:

選擇排序是在待排序陣列中選出最小/最大值然後和前面的進行交換,所以破壞了之前的穩定性,是不穩定排序。

演算法適用的場合:

實際應用中和氣泡排序基本差不多,使用較少,適用於元素數量較少時

C 排序演算法之簡單選擇排序

簡單選擇排序演算法 1 演算法介紹 簡單選擇排序採用最簡單的選擇方式,從頭到尾順序掃瞄序列,找出最小的乙個記錄,和第乙個記錄交換,接著從剩下的記錄中繼續這種選擇和交換,最終使序列有序。2 執行過程 下面舉例說明簡單選擇排序的執行過程 原始序列 3 5 2 9 7 8 4 1 6 10 在選擇排序的過...

排序演算法之簡單選擇排序

簡單選擇排序演算法,它的概念就是在要排序的一組數中,選出最小 或者最大 的一 個數與第1個位置的數交換 然後在剩下的數當中再找最小 或者最大 的與第2個位置的數交換,依次類推,直到第n 1個元素 倒數第二個數 和第n個元素 最後 乙個數 比較為止。這個演算法是很容易理解的,那麼,直接上 最下面的乙個...

排序演算法之簡單選擇排序

學習 輕鬆學演算法 簡單選擇排序 簡單選擇排序的思想很簡單,假設我們要從小到大排序,那麼我們可以這樣 從未排序的數列中找到最小的數,放在第乙個位置,讓原來在第乙個位置上的數放到最小數的位置,那麼第乙個位置上就是最小數,他是有序的。接著在剩下的未排序的數列中,再找到最小數,放在第二個位置,讓原來第二個...