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

选择排序

时间:2024-10-23 10:11:53浏览次数:5  
标签:int 最小 选择 Arrays 找到 数组 排序

一、选择排序的介绍

简单来说就是,先从数组中找到最小的那个数(先默认第一个数为最小的),对他进行标记(使用一个变量存储它的下标,遇到比他小的更新下标),直到找到数组中的最后一个数,然后将最小的那个数与第一个数进行交换。

接下来我们使用动画演示进行解释

下面的是网址跟截屏以及如何使用
https://visualgo.net/en/sorting

二、进行代码演示

/*
    选择排序指的是先从数组中找到最小的那个数并标记,直到找到最后一位,再将最小的那个数与第一个数进行交换,如此反复
 */

import java.util.Arrays;

public class XuanZeTest1 {
    public static void main(String[] args) {
        int[] a=new int[]{7, 3, 9, 4, 1};
        System.out.println("排序前:"+Arrays.toString(a));
        //第一层循环。保证每一次循环结束,第i个数是最小的
        for(int i=0;i<a.length-1;i++){
            int x=i; //开始时先默认第一个值最小,用x进行标记
            for(int j=i;j<a.length;j++){
                //对数组中每个数进行比较,如果比默认值小,进行替换
                if(a[x]>a[j]){
                    x=j;
                }
                //判断是不是找到最后一个数字了
                if(j==a.length-1){
                    //将最小的那个数与第一个数进行交换
                    int y=a[i];
                    a[i]=a[x];
                    a[x]=y;
                }
            }
        }
        System.out.println("排序后:"+ Arrays.toString(a));
    }
}

标签:int,最小,选择,Arrays,找到,数组,排序
From: https://www.cnblogs.com/ndmtzwdx/p/18494553

相关文章

  • 排序(一)插入排序,希尔排序,选择排序,堆排序,冒泡排序
    目录一.排序1.插入排序2.希尔排序3.选择排序4.堆排序5.冒泡排序二.整体代码1.Sort.h2.Sort.c3.test.c一.排序1.插入排序插入排序基本思想:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序......
  • 冒泡排序
    一、冒泡排序的介绍冒泡排序简单的来说就是将第一个数与第二个数进行比较,如果第一个数大就进行交换,这样比到最后就是这组数中最大数,下面将使用动画演示来展示冒泡排序https://visualgo.net/en/sorting这是一个可视化界面,可以详细的查看相关的排序动画。二、代码进行演示接下......
  • python中的字典排序--sorted()
    字典的排序:在学习python的时候,了解到相比于列表,字典是一个无序的数据结构,一般都不对其进行排序的。但是要想对字典进行排序,是可以通过sorted()函数进行操作的!关于字典的排序,下面从键key和值value进行代码的运行和分析:【先看代码和执行结果,后面会进行详细的解析】#先定义一......
  • 排序算法 —— 快速排序(理论+代码)
    目录1.快速排序的思想2.快速排序的实现hoare版挖坑法前后指针法快排代码汇总3.快速排序的优化三数取中小区间优化三路划分4.快速排序的非递归版本5.快速排序总结1.快速排序的思想快速排序是一种类似于二叉树结构的排序方法。其基本思想为从待排序序列中任取一个......
  • 在分布式数据库中,如何选择合适的数据分片策略?
    关注我,持续分享逻辑思维&管理思维&面试题;可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导;推荐专栏《10天学会使用asp.net编程AI大模型》,目前已完成所有内容。一顿烧烤不到的费用,让人能紧跟时代的浪潮。从普通网站,到公众号、小程序,再到AI大模型网站。干货满满。学成后可......
  • echarts根据数据动态生成饼图的个数,并排序
    动态生成个数functioninitPurchaseContract(){//获取数据的keysletkeys=Object.keys(dataPurchaseContract[0]);lettotalCharts=keys.length-1;//饼图数量//动态计算行数和列数(使布局接近正方形)letcols=3;//列数letrows......
  • 如何选择5款高效论文AI写作工具?轻松摆脱熬夜赶稿!
    熬夜赶着写论文的你,是不是手边放着一杯咖啡,眼睛盯着屏幕,脑子却已经开始放空?明明有点儿想法,但就是敲不出满意的句子。这种时候别慌!现在有了论文AI写作工具,完全能帮你摆脱熬夜加班的痛苦,把学术任务轻松搞定。从智能生成到精准修改,它们就像你的私人助理一样,为你省下不少时间和精......
  • 中小施工企业的如何选择工程项目管理软件?
    工程行业是典型的传统行业,劳动密集,协作频繁,依赖经验传承。在工程项目施工过程中,常见的难题纷繁复杂,其中包括效率低下、材料浪费、数据不实、原材料成本上涨、工期延误、质量缺陷和安全风险等。这些问题不仅阻碍了项目的顺利推进,更显著影响了企业的经济效益,压缩了利润空间。同......
  • 机器学习基础模型选择
    最近邻适用于小型数据集,是很好的基准模型,很容易解释。线性模型非常可靠的首选算法,适用于非常大的数据集,也适用于高维数据。朴素贝叶斯只适用于分类问题。比线性模型速度还快,适用于非常大的数据集和高维数据。精度通常要低于线性模型。决策树速度很快,不需要数据缩放,可以可......
  • PbootCMS会话路径选择站内还是系统?
    PbootCMS的会话路径选择是一个需要仔细考虑的问题。不同的选择会有不同的优缺点,以下是对“站内”和“系统”两种选择的详细分析,帮助你做出合适的选择:会话路径选择1.选择站内优点:集中管理:所有缓存和会话文件都存储在网站目录下的runtime文件夹中,便于管理和清理。独立性:不......