首页 > 其他分享 >选择排序

选择排序

时间:2022-11-01 19:25:43浏览次数:51  
标签:minValueIndex int 选择 66 array 排序 public

/**
 * 选择排序
 * @Author xin
 * @Date 2022/10/25 18:13
 * @Version 1.0
 */
public class SelectionSort {
    public static void swap(int[] array, int i, int j){
        int temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
    /**排序*/
    public static void selectSort(int[] array) {
        //首先考虑边界条件
        if(array == null || array.length < 2) {
            return;
        }
        for (int i = 0; i < array.length; i++) {
            int minValueIndex = i; //假设当前循环数为最小数所在坐标
            for (int j = i+1; j < array.length; j++) {
                minValueIndex = array[j] < array[minValueIndex] ? j : minValueIndex;
            }
            //到这块第一次循环已经找到最小的值的坐标,交换我们开始定义的最小数与找到的最小数的位置。
            swap(array,i,minValueIndex);
        }
    }
    public static void main(String[] args) {
        //给定一个数组
        int[] array = {5,7,1,3,23,22,53,21,4,66,68,124,8};
        PrintUtil.printIntArray(array);  //5 7 1 3 23 22 53 21 4 66 68 124 8
        selectSort(array);
        PrintUtil.printIntArray(array);  //1 3 4 5 7 8 21 22 23 53 66 68 124

        System.out.println();
    }
}

标签:minValueIndex,int,选择,66,array,排序,public
From: https://www.cnblogs.com/xinay/p/16848860.html

相关文章

  • 插入排序
    publicclassInsertSort{publicstaticvoidswap(int[]array,inti,intj){inttemp=array[i];array[i]=array[j];array[j]=......
  • 快速排序
    publicclassQuickSort{/***场景1*给定一个数组,确定一个数字N,小于N的数组放最左边,大于N的放最右边*/publicstaticvoidsplitNum(int[]......
  • 归并排序
    publicclassMergeSort{/***ans2:非递归实现*/publicstaticvoidmergeSort2(int[]array){if(array==null||array.length<2......
  • biogeme巢式logit选择学习
    #导入库```pythonimportpandasaspdimportcsvfrombiogemeimportmodelsimportbiogeme.biogemeasbioimportbiogeme.databaseasdbfrombiogeme.expressionsimpo......
  • 插入排序
    插入排序是基础简单,同时效率也不高的排序voidinsertion_sort(vector<int>&nums){ intn=nums.size(); //把第一个当作是有序序列,从第二个开始操作 for(inti=......
  • 用C语言实现的对单链表进行快速排序的算法
    typedefstructLinkNode{intdata;structLinkNode*next;}LinkNode,*LinkList;voidquickSortLinkList(LinkListlist,LinkNode*end){LinkNode......
  • Redis 中两个字段排序
    参考:Redis中两个字段排序 redis如何实现多字段排序1.多个维度使用数据库查询排序输出,目前使用的方式。 Redis用一个SortedSet解决按两个字段排序的问题,也就是......
  • 为什么选择高防DNS云解析?(一)-中科三方
    DNS(domainnameserver, 域名服务器)是互联网的一项核心服务,是进行域名与之对应的IP地址之间转换的系统,可将易于记忆的域名转换为方便服务器识别的用于互连通信的数字IP地......
  • 拓端tecdat|R语言代写参数检验 :需要多少样本?如何选择样本数量
    参数检验受制于数据属性的假设。例如,学生t检验是众所周知的参数检验,假设样本均值具有正态分布。由于​​中心极限定理​​,如果样本量足够,测试也可以应用于非正态分布的测量......
  • 剑指offer——数字在排序数组中出现的次数
    题目描述:统计给定数字k在排序数组中出现的次数思路1:最容易想到但是效率不高的一个方法就是遍历整个数组,统计k出现的次数(for循环就能解决,不赘述)思路2:由于题目给出是排序......