選擇排序分析

2021-10-23 02:39:07 字數 926 閱讀 8540

不同於氣泡排序,選擇排序是第乙個位置與後面所有位置的數比較,如果不滿足要求就調換位置,直到第n-1個元素與第n個元素交換位置,選擇排序結束。從演算法邏輯上看,選擇排序是一種簡單直觀的排序演算法,在簡單選擇排序過程中,所需移動記錄的次數相對而言較少。

舉例:用選擇法對十個整數排序(12 34 5 689 -43 56 -21 0 24 65),由大到小。

排序過程:

輸入:12 34 5 689 -43 56 -21 0 24 65

第一步:689 12 34 5 -43 56 -21 0 24 65

第二步:689 65 12 5 -43 34 -21 0 24 56

第三步:689 65 56 12 5 -43 34 -21 0 24

…第九步:689 65 56 34 24 12 5 0 -21 -43

輸出:689 65 56 34 24 12 5 0 -21 -43

c**案例:

#include

void sort(int x, int n)

}}int main()

printf("\n");

return 0;輸出結果:

選擇排序的複雜度:

簡單選擇排序的比較次數與序列的初始排序無關,與移動次數有關。假設待排序的系列有n個元素,則比較次數總是n(n-1)/2;當排序正序時,移動次數最少,為0

當序列反序時,移動次數最多,為3n(n-1)/2;

所以,綜上,簡單排序的時間複雜度為o(n*n);空間複雜度o(1)。

選擇排序它並不耗費額外的記憶體空間,在簡單選擇排序過程中,所需移動記錄的次數比較少。

演算法 選擇排序,例項分析選擇排序演算法

選擇排序,將乙個序列看做兩個部分,前面有序,後面無序,每次在後面的無序序列中,選擇乙個最小的元素,交換到前面有序序列的末尾,直到無序序列全部完成交換,即可完成排序 選擇排序是不穩定的排序演算法 有乙個序列 5,2,0,1,3,1,4 第一趟排序 第二趟排序 此時我們看到,經過兩趟排序,前面兩個元素 ...

氣泡排序,選擇排序,插入排序思想分析

氣泡排序 思想 首先找到乙個最大值或者最小值,然後在剩下的待排序集合中找最大或最小 方法 相鄰的兩個比較,將較大的值向後交換,待第一次迴圈結束,最大值交換到最後乙個,因為是兩兩比較,所以第一次迴圈至少需要比較n 1次,最壞情況下需交換n 1次 隨後每次迴圈,比較次數逐漸減少,直達只剩乙個元素,時間複...

java 氣泡排序和選擇排序的分析

兩種排序方式 現在介紹兩種著名的排序方式 1,氣泡排序 相鄰元素進行比較,較大的往右邊移動 結果就是每一次排序,最大的都會移動到右邊。最後結果就是公升序的序列。如 3,4,2,6,7 第一輪 1,3 4 不變 3,4,2,6,7 2,4 2 交換位置 3,2,4,6,7 3,4 6 不變 3,2,4...