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

 

posted @ 2021-07-14 09:47  小麒麟的饲养员  阅读(73)  评论(0)    收藏  举报