1 17 選擇排序法

2021-10-09 15:48:13 字數 1679 閱讀 5462

假設當前存在乙個 int 型別的陣列 number,該陣列中的元素依次是 13、15、 24、99、4 和 1。如果使用氣泡排序進行兩兩相鄰比較,第一趟排序後的結果如下:

13、15、24、4、1、99

第二趟排序後的結果如下:

13、15、4、1、24、99

第三趟排序後的結果如下:

13、4、1、15、24、99

第四趟排序後的結果如下:

4、1、13、15、24、99

第五趟排序後的結果如下:

1、4、13、15、24、99

使用選擇排序法也可以對上述陣列中的元素進行排序,但是它與氣泡排序不同。選擇排序是指每一趟從待排序的資料元素中選出最大(或最小)的乙個元素,順序放在已排好序的數列的最後,直到全部待排序的資料元素排完。例如,使用選擇排序法重新對 number 陣列中的元素進行排序,那麼第一趟排序後的結果如下:

13、15、24、1、4、99

第二趟排序後的結果如下:

13、15、4、1、24、99

第三趟排序後的結果如下:

13、1、4、15、24、99

第四趟排序後的結果如下:

4、1、13、15、24、99

第五趟排序後的結果如下:

1、4、13、15、24、99

例 1

利用選擇排序方法通過程式設計的方式實現對 number 陣列的排序,並輸出已排序的陣列元素。**如下:

int[

] number =

;string end =

"\n"

;int index;

for(int i =

1;i < number.length;i++)}

end = number[index]

+" "

+ end;

// 定位已排好的陣列元素

int temp = number[number.length-i]

; number[number.length-1]

= number[index]

; number[index]

= temp;

system.out.

print

("【");

for(int j =

0;j < number.length-i;j++

) system.out.

print

("】"

+end)

;}

執行上述**,檢視每一趟排序後的結果,執行結果如下所示。

【13 15 24 1 4 】99 【13 15 4 1 】24 99 【13 1 4 】15 24 99 【4 1 】13 15 24

99 【1 】4 13 15 24 99

排序法之選擇排序法

首先通過陣列中元素的比較方式來分析 用陣列中第乙個角標的元素與陣列中第二個角標的元素進行比較,發現9比6大,進行位置置換,此處應該定義乙個三方變數,用來記錄住置換過程的元素值,然後再用第乙個角標的元素與下乙個角標元素進行比較,按照全面的原則進行置換位置,如果前者小於後者,則不置換位置,一次比較,當第...

氣泡排序法 選擇排序法

相鄰兩個數進行比較 如果前者比後者大 就把前者和後者互換 比如十個數 經過九次比較 就可以得到乙個最大的數字於排列的最末端 再經過八次比較 可以得到乙個第二大的數 依次類推 即最大的數一次一次冒泡上來。include int main printf n 資料排序 for i 0 i 9 i 列印資料...

選擇排序法

1.直接選擇排序法 基本思想 每一趟 第i趟,i 0,1,2,n 1 在後面n i個待排序記錄中選出關鍵字最小的記錄,作為有序記錄序列的第i個記錄。直到第n 2趟完,待排記錄只剩下乙個,不完再選了!直接選擇排序法 void selectionsort int parry,int ilen if k ...