首页 > 编程语言 > 详细

选择排序

时间:2020-07-19 20:43:22      阅读:49      评论:0      收藏:0      [点我收藏+]

选择排序(Selection Sort)

  1. 选择排序原理
    ? ? ? 在每一次的遍历中,都假定第一个索引处的值为最小元素,在与后面索引处的值分别进行比较,如果当前索引的值大于某个索引处的值,则假定其索引处的值为最小值,在遍历完成后找到最小值所在的索引。再交换最小值索引和第一个位置的索引。再重复上面的操作,完成排序。
    技术分享图片
  2. 选择排序代码
public class SelectSort {
    private static boolean greater(Comparable v, Comparable w){
        return v.compareTo(w)>0;
    }

    private static void exch(Comparable[] a,int i,int j){
        Comparable temp = a[i];
        a[i] = a[j];
        a[j] = temp;
    }

    public static void sort(Comparable[] a){
        //外层决定排序的次数
        for (int i = 0;i<a.length-1;i++){
            //定义一个变量,记录最小元素所在的索引,默认参与选择排序的第一个元素所在的位置为最小元素。
            int min = i;
            //内层决定比较的次数
            for (int j = i+1;j<a.length;j++){
                //比较最小索引处的值和j索引处的值
                if (greater(a[min],a[j])){
                    min = j;
                }
            }
            exch(a,i,min);
        }
    }
}

  1. 选择排序的时间复杂度和稳定性
    选择排序的时间复杂度为:O(n2)
    选择排序的稳定性:选择排序时不稳定的算法

选择排序

原文:https://www.cnblogs.com/zuzuzu-code/p/13340615.html

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