陣列的選擇排序

2021-10-11 02:31:32 字數 926 閱讀 6550

1、演算法思想:選擇排序,從頭至尾掃瞄序列,找出最小的乙個元素,和第乙個元素交換,接著從剩下的元素中繼續這種選擇和交換方式,最終得到乙個有序序列。

2、演算法過程

舉個栗子(第一趟的排序過程)

原始序列:49、38、65、97、76、13、27、49

1)在進行選擇排序過程中分成有序和無序兩個部分,開始都是無序序列

結果:49、38、65、97、76、13、27、49

2)從無序序列中取出最小的元素13,將13同無序序列第乙個元素交換,此時產生僅含乙個元素的有序序列,無序序列減一

結果:   

3)從無序序列中取出最小的元素27,將27同無序序列第乙個元素交換,此時產生僅兩個元素的有序序列,無序序列減一

結果:   

4)從無序序列中取出最小的元素38,將38同無序序列第乙個元素交換,此時產生含三個元素的有序序列,無序序列減一

結果:   

5)從無序序列中取出最小的元素49,將49同無序序列第乙個元素交換,此時產生含四個個元素的有序序列,無序序列減一

結果:   

6)從無序序列中取出最小的元素49,將49同無序序列第乙個元素交換,此時產生含五個元素的有序序列,無序序列減一

結果:   

7)從無序序列中取出最小的元素65,將65同無序序列第乙個元素交換,此時產生含六個元素的有序序列,無序序列減一

結果:   

8)從無序序列中取出最小的元素76,將76同無序序列第乙個元素交換,此時產生含七個元素的有序序列,無序序列減一

結果:   

9)最後乙個元素肯定是最大元素,無序排序直接生產乙個有序的序列

結果:

public class selectarray 

}temp=arr[i];

arr[i]=arr[k];

arr[k]=temp;}}

}

陣列的選擇排序

選擇排序基本思路 把第乙個元素依次和後面的所有元素進行比較。第一次結束後,就會有最小值出現在最前面。依次類推 public class arraydemo selectsort arr system.out.println 排序後 printarray arr 氣泡排序 public static ...

陣列的選擇排序

選擇排序 選擇某個索引位置的元素,然後和後面的元素依次進行比較,若大於則交換位置,經過第一輪比較排序後可以得出最小值,然後使用同樣的方法把剩下的元素逐個比較即可.public class arrsort system.out.println n printarr arr selectionsort ...

陣列排序 選擇排序

問題及 檔名稱 test.cpp 作 者 夏煥哲 完成日期 2014 年 11 月 20 日 版 本 號 v1.0 問題描述 陣列排序 輸入描述 乙個被賦初值的陣列 程式輸出 輸出排序後的陣列。include using namespace std void select sort int a,in...