1. 程式人生 > 其它 >【排序演算法】1.選擇排序--SelectionSort

【排序演算法】1.選擇排序--SelectionSort

【排序演算法】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;
    }
}