首页 > 编程语言 >排序算法-选择排序

排序算法-选择排序

时间:2024-04-01 22:31:46浏览次数:22  
标签:arr nums int 最小值 选取 选择 算法 排序

选择排序:遍历数组,找到最小值,放到arr[0],遍历剩下的数组,找到最小值放到arr[1],以此类推。
思路:第一次从 arr[0]~arr[n-1]中选取最小值,与 arr[0]交换,第二次从 arr[1]~arr[n-1]中选取最小值,与 arr[1]交换,第三次从 arr[2]~arr[n-1]中选取最小值,与 arr[2]交换,...,第 i 次从 arr[i-1]~arr[n-1]中选取最小值,与 arr[i-1]交换,..., 第 n-1 次从 arr[n-2]~arr[n-1]中选取最小值,
与 arr[n-2]交换,总共通过 n-1 次,得到一个按排序码从小到大排列的有序序列。

class Solution {
    public void sortArray(int[] nums) {
        if(nums==null || nums.length<2 ){
            return;
        }
        int n=nums.length;
        //i<n-1,因为总共需要n-1次交换
        for(int i=0;i<n-1;i++){
            //默认最小值为i
            int minIndex=i;
            for(int j=i+1;j<n;j++){
                minIndex=nums[minIndex]>nums[j]?j:minIndex;
            }
            swap(nums,i,minIndex);
        }
       
    }

    public void swap(int[] nums,int a,int b){
        int temp=nums[a];
        nums[a]=nums[b];
        nums[b]=temp;
    }
}

标签:arr,nums,int,最小值,选取,选择,算法,排序
From: https://blog.csdn.net/qq_45800511/article/details/137178250

相关文章

  • 2024年新算法-冠豪猪优化算法(CPO),CPO-RF-Adaboost,CPO优化随机森林RF-Adaboost回归预
    冠豪猪优化算法(CPO)是一种基于自然界中猪群觅食行为启发的优化算法。该算法模拟了猪群在寻找食物时的集群行为,通过一系列的迭代过程来优化目标函数,以寻找最优解。在这个算法中,猪被分为几个群体,每个群体内的猪会根据当前的最佳解以及群体内部的协作信息来更新自身位置,以期望获得......
  • 七大查找算法
    1顺序查找//顺序查找intSequenceSearch(inta[],intvalue,intn){inti;for(i=0;i<n;i++)if(a[i]==value)returni;return-1;}2二分查找//二分查找(折半查找),版本1intBinarySearch1(inta[],intvalue,intn){int......
  • 基于阿基米德优化算法优化的核极限学习机(KELM)回归预测
    基于阿基米德优化算法优化的核极限学习机(KELM)回归预测文章目录基于阿基米德优化算法优化的核极限学习机(KELM)回归预测1.KELM理论基础2.回归问题数据处理4.基于阿基米德优化算法优化的KELM5.测试结果6.Matlab代码摘要:本文利用阿基米德优化算法对核极限学习机(KELM......
  • 基于寄生捕食算法优化的核极限学习机(KELM)回归预测
    基于寄生捕食算法优化的核极限学习机(KELM)回归预测文章目录基于寄生捕食算法优化的核极限学习机(KELM)回归预测1.KELM理论基础2.回归问题数据处理4.基于寄生捕食算法优化的KELM5.测试结果6.Matlab代码摘要:本文利用寄生捕食算法对核极限学习机(KELM)进行优化,并用于......
  • 基于黑寡妇算法优化的核极限学习机(KELM)回归预测
    基于黑寡妇算法优化的核极限学习机(KELM)回归预测文章目录基于黑寡妇算法优化的核极限学习机(KELM)回归预测1.KELM理论基础2.回归问题数据处理4.基于黑寡妇算法优化的KELM5.测试结果6.Matlab代码摘要:本文利用黑寡妇算法对核极限学习机(KELM)进行优化,并用于回归预测.......
  • 基于未来搜索算法优化的核极限学习机(KELM)回归预测
    基于未来搜索算法优化的核极限学习机(KELM)回归预测文章目录基于未来搜索算法优化的核极限学习机(KELM)回归预测1.KELM理论基础2.回归问题数据处理4.基于未来搜索算法优化的KELM5.测试结果6.Matlab代码摘要:本文利用未来搜索算法对核极限学习机(KELM)进行优化,并用于......
  • 11种排序算法(Python实现)
    10种排序算法(Python实现)冒泡排序1、两重循环,每次都将一个点移动到最终位置defBubbleSort(lst):n=len(lst)ifn<=1:returnlstforiinrange(0,n):forjinrange(0,n-i-1):#每轮确定一个点的最终位置iflst[j]>lst[j+1]:......
  • CSS 学习第三天 (伪·类选择器)
    #  概念什么是伪类? ——很像类,但不是类,是元素的特殊状态的一种描述#动态伪类 #常用的伪类选择器: :link  超链接未被访问的状态 :visited 超链接访问过的状态 :hover 鼠标悬停在元素上的状态 :active 元素激活 (按住左键不松开)的状态 :focus......
  • C++基础——选择结构与循环结构
    基础:选择语句☑️❌if语句if(a){//a判断表达式,如果a为真那就执行语句}if语句还可以与else结合使用if(a){//a判断表达式,如果a为真那就执行语句}elseif(b){//如果a为假,b为真那就执行语句}else{如果a和b都为假,那就执行该语句}swi......
  • 【Java】使用 Java 语言实现一个冒泡排序
    【Java】使用Java语言实现一个冒泡排序前言上一篇文章已经学习了,如何使用IDE集成开发工具编写Java代码,并输出了一段HelloWorld的代码。本篇文章将通过IDE使用Java语言实现一个冒泡排序。冒泡排序介绍冒泡排序也是一种简单直观的排序算法。冒泡排序的基本思想是多次遍历......