首页 > 编程语言 >【算法基础】:(四)选择排序

【算法基础】:(四)选择排序

时间:2023-06-12 16:35:40浏览次数:32  
标签:index arr int 元素 选择 算法 排序


java基础算法

算法基础: 开始回顾下基础算法中的经典排序算法


选择排序是插入排序的一种

算法思想:选择排序在开始的时候,先扫描整个列表,以找到列表中的最小元素,然后将这个元素与第一个元素进行交换。这样最小元素就放到它的最终位置上。然后,从第二个元素开始扫描,找到n-1个元素中的最小元素,然后再与第二个元素进行交换。以此类推,直到第n-1个元素(如果前n-1个元素都已在最终位置,则最后一个元素也将在最终位置上)。


一、选择排序代码

public class 选择排序 {

    /**
     * @Description 从小到大
     * 当前循环的号位,每次分别与其他位号的值比较,找出当前最小的值,然后交换位置
     * 第0次[1, 5, 6, 3, 2, 4]
     * 第1次[1, 2, 6, 3, 5, 4]
     * 第2次[1, 2, 3, 6, 5, 4]
     * 第3次[1, 2, 3, 4, 5, 6]
     * 第4次[1, 2, 3, 4, 5, 6]
     * 第5次[1, 2, 3, 4, 5, 6]
     * @Author 寂寞旅行
     * @Date 8:57 2022/2/26
     * @Param [args]
     **/
    public static void main(String[] args) {

        int[] arr = {4, 5, 6, 3, 2, 1};

        for (int i = 0; i < arr.length; i++) {
            int index = i;
            int temp;
            for (int j = i; j < arr.length; j++) {
                if (arr[index] > arr[j]) {
                    index = j;
                }
            }
            temp = arr[i];
            arr[i] = arr[index];
            arr[index] = temp;
            System.out.println("第" + i + "次" + Arrays.toString(arr));
        }
    }
}

二、动画演示

【算法基础】:(四)选择排序_排序算法


总结

可以看到选择排序的核心思想是利用两层循环,外层循环控制第i个要交互的元素
内层循环首先比对i 到集合末尾中最小的一个,找到后与外层循环的i元素进行交互
也就说,每次执行,都会将把比i索引所在元素小,且最小的一个,移动到i位置,这样达到了排序效果


标签:index,arr,int,元素,选择,算法,排序
From: https://blog.51cto.com/u_16158506/6463441

相关文章

  • 算法:丑数
    题目描述编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数2,3,5的正整数。示例1:输入:6输出:true解释:6=2×3示例2:输入:8输出:true解释:8=2×2×2示例3:输入:14输出:false解释:14不是丑数,因为它包含了另外一个质......
  • 【技术积累】算法中的回溯算法【一】
    回溯算法是什么回溯算法是一种用于求解在某个搜索空间中的问题的算法。它基本思想是从问题的某一种状态开始不断地尝试各种可能的选择,直到找到一种满足问题要求的解或者发现这些选择都无法满足要求时,就回到上一个状态,尝试其他的选择。回溯算法通常采用递归的方法实现,它会不断地......
  • 算法题:求解斐波那契数列
    概念:斐波那契数列是指以0,1开始,之后每一项都等于前两项之和的数列,即:0,1,1,2,3,5,8,13,21,34,55,89,144……以此类推。这个数列最早是由13世纪意大利数学家斐波那契提出的,并在数学、自然科学和计算机科学等领域有着广泛的应用。题目:若有一只兔子,它每个月生一只小兔子,而小兔子......
  • 算法练习-day5
    哈希表242.有效的字母异位词题意:给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。注意:若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。示例:    思路:我们可以先创建一个unordered_map用于记录s中元素出现的次数,然后再遍历t,让t出现元素次数减去s出现......
  • 算法分析期末复习
    算法分析期末复习第一章算法概述基本理论知识课后作业做过的类型渐进阶排序,类似课后作业:1-3输入规模,类似课后作业:1-4,1-5第二章递归与分治基本概念,基本思想递归:直接或间接的调用自身的算法。分治:分治法的子问题间是相互独立的,子问题不包含公共的子问题。......
  • 深度学习降噪专题课:实现WSPK实时蒙特卡洛降噪算法
    大家好~本课程基于全连接和卷积神经网络,学习LBF等深度学习降噪算法,实现实时路径追踪渲染的降噪本课程偏向于应用实现,主要介绍深度学习降噪算法的实现思路,演示实现的效果,给出实现的相关代码线上课程资料:本节课录像回放加QQ群,获得相关资料,与群主交流讨论:106047770本系列文章为......
  • RC4加密算法及Python实现
    一、RC4加密算法原理RC4算法是一种流加密算法,由RonRivest在1987年设计。它的主要特点是简单快速,而且在加密解密过程中使用的密钥长度可变。因此,RC4算法被广泛应用于网络安全领域,如SSL、TLS、WEP、WPA等协议中。RC4算法的加密过程如下:初始化S盒和T数组。S盒是一个256字节的数组,用于......
  • CSS选择器——简单爬虫代码
    爬取豆瓣top250影片资料(待修改)使用BeautifulSoup方法进行操作,CSS选择器截取html文本内容,对网页解析如。 importrequestsfrombs4importBeautifulSoup#避免反复获取出现爬取失败#头请求用于防止访问拒绝,亦可加cookiesdefpage_request(url,headers):htmltxt=requests.g......
  • Oracle的分组排序功能实现最大值一列数据获取
    需求:按某列的最大值取整行数据。 select<includerefid="ALL_COLUMNS"/>from(select<includerefid="ALL_COLUMNS"/>,ROW_NUMBER()OVER(ORDERBYTOKEN_RATEDESC)ASrnfrom<includerefid="......
  • 4.4 分类算法-逻辑回归与二分类以及分类的评估方法
    1逻辑回归的简介1.1简介逻辑回归(LogisticRegression)是机器学习中的一种分类模型,逻辑回归是一种分类算法,虽然名字中带有回归,但是它与回归之间有一定的联系。由于算法的简单和高效,在实际中应用非常广泛。1.2应用场景广告点击率(是否会被点击)是否为垃圾邮件是否患病金融诈......