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...