首页 > 编程语言 > 详细

【排序算法】1.选择排序--SelectionSort

时间:2021-07-14 12:05:43      阅读:35      评论:0      收藏:0      [点我收藏+]

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

 

【排序算法】1.选择排序--SelectionSort

原文:https://www.cnblogs.com/xintu524/p/15009466.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!