【排序演算法】1.選擇排序--SelectionSort
阿新 • • 發佈:2021-07-14
【排序演算法】1.選擇排序--SelectionSort
演算法視覺化
- 標記當前元素
- 每次元素比較將其中最小元素下標記錄
- 遍歷後將最小元素下標與當前排序位置元素進行交換
- 可以跳過已排序元素
程式碼實現
public class SelectionSort { public static void main(String[] args) { //生成隨機數陣列 int[] ints = RandomNuberUtils.randomnum(10); System.out.println(); //被選擇需要排序的元素位置 for(int i = 0; i < ints.length-1 ; i++) { //標記最小元素 int k=i; //將標記元素與全部元素對比 for (int j=i;j<ints.length;j++){ //記錄更小元素位置並更新 if (ints[k]>ints[j]){ k=j; System.out.println("第"+i+"次排序最小值為:"+ints[k]); System.out.println("索引"+j); } } //將最小元素與當前標記元素交換 int c=ints[i]; ints[i]=ints[k]; ints[k]=c; } System.out.print("排序後陣列:"); for (int m:ints ) { System.out.print(m+" "); } } }
附上一段產生隨機數的程式碼
public class RandomNuberUtils { public static int[] randomnum(int size){ //定義隨機數陣列 int[] arr = new int[size]; //賦值 for (int m=0;m<size;m++){ arr[m]= (int) (Math.random()*100); } System.out.print("需排序陣列為:"); for (int i:arr ) { System.out.print(i+","); } return arr; } }