选择排序分析动图演示

2023-10-27

选择排序

思路总结

1、首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置

2、再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

3、重复第二步,直到所有元素均排序完毕。

动图演示

冒泡排序动图演示

代码示例

public static void main(String[] args) {
        int[] arr = {12,34,23,56,45};
        System.out.print("排序前:");
        for(int a:arr){
            System.out.print(a+"  ");
        }
        // 总共要经过 N-1 轮比较
        for (int i = 0; i < arr.length - 1; i++) {
            int min = i;
            // 每轮需要比较的次数 N-i
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[j] < arr[min]) {
                    // 记录目前能找到的最小值元素的下标
                    min = j;
                }
            }
            // 将找到的最小值和i位置所在的值进行交换
            if (i != min) {
                int tmp = arr[i];
                arr[i] = arr[min];
                arr[min] = tmp;
            }
        }
        System.out.println();
        System.out.print("排序后:");
        for(int a:arr){
            System.out.print(a+"  ");
        }
    }

运行结果

选择排序运行结果展示

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

选择排序分析动图演示 的相关文章

随机推荐

  • 【人工智能】Fisher 线性分类器的设计与实现(QDU)

    人工智能 Astar算法求解8数码问题 QDU 人工智能 利用 搜索的博弈树算法编写一字棋游戏 QDU 人工智能 Fisher 线性分类器的设计与实现 QDU 人工智能 感知器算法的设计实现 QDU 人工智能 SVM 分类器的设计与应用 Q
  • Invalid option 'latest' for /langversion; must be ISO-1, ISO-2, Default or an integer in range 1 to

    Easily Add PDF Word Excel Function to Your NET Apps You may be thinking that C 7 features are already supported with Vis
  • 【C语言】浮点型数据为什么不能直接比较

    由于浮点型的精度是有限的 经过运算就可能存在舍入误差 比如 x y y x 所以如果要比较浮点型数值 最好要先定义一个极小值MIN作为允许误差 1 浮点型与0比较 define MIN 0 0000000001 double temp if
  • 1个星期,教你快速上手Unity ASE-【UI流动】

    目录 前言回顾 效果图 节点预览 步骤 前言回顾 不熟悉节点属性的可以点击传送门预览 传送门 1个星期 教你快速上手Unity ASE 预览 传送门 1个星期 教你快速上手Unity ASE 遮罩 传送门 1个星期 教你快速上手Unity
  • Qt中ui文件的使用

    用designer设计的 ui文件可以通过uic工具转换为 h文件 在编译时也会自动生成这样一个ui h文件 有了这个 h文件就可以直接按照纯C 的方式对其中的类进行调用 ui文件的使用就是利用默认工具uic自动产生一个类 然后用该类的se
  • 【数据结构与算法】<==>二叉树下

    目录 堆的应用 1 堆排序 1 建堆 2 向下调整的时间复杂度 3 向上调整建堆的时间复杂度 二叉树链式结构的实现 遍历操作 其他操作 堆的应用 1 堆排序 堆排序即利用堆的思想来进行排序 总共分为两个步骤 1 建堆 升序 建大堆 序 建大
  • 小程序隐私保护的常见问题汇总 小程序隐私配置解决

    涉及调用用户个人信息相关接口的 每一个小程序均需补充相应用户隐私保护指引 1 设置隐私保护的时候 clientip is not registered 返回的错误信息 errCode 61004 errMsg access clientip
  • UE4,UE5虚幻引擎,怎么在蓝图中获取FPS帧速率,显示在UMG(UI)上

    前言 在UE中可以使用命令行比如stat fps显示帧率 但只是显示在界面 假设我们要在蓝图中获取FPS帧率 并且显示在我们创建的UMG控件蓝图 这种stat fps命令行的形式就不行了 因为它只会固定显示在右上角的位置 1 在Tick中获
  • js data 日期初始化

    创建一个日期对象 var objDate new Date arguments list 参数形式有 以下 种 1 new Date month dd yyyy hh mm ss 2 new Date month dd yyyy 3 new
  • 小白数学建模模型入门(一)

    数学建模模型入门 一 1 层次分析法 AHP 针对于难以完全定量的复杂系统做出决策的模型和方法 如图 判断好目标层 准测层 可理解为考虑元素 方案层 不把所有因素放在一起比较 而是两两互相比较 两因素比较的标度由参考论文或其他途径得出 得到
  • 【C++】类的默认成员函数(上)

    文章目录 类的默认成员函数 1构造函数 1 1构造函数特征 1 2编译器自动生成的构造函数 1 3编译器默认的构造函数 1 4C 11特征 2析构函数 2 1特征 2 2编译器默认的析构函数 3拷贝构造函数 3 1特征 3 2编译器默认生成
  • ssh渗透与hydra爆破(简明不啰嗦)

    适合新手上路 MSF与hydra两种方式渗透22端口 后进行远程连接 如有不足请各位见谅 此次实验仅供参考 切勿做违法犯罪 出事一切与本人无关后果自负 希望大家早日成为白帽子 渗透机 kali 靶机 192 168 75 128 1 扫描局
  • vim配置全攻略(2)——vim的简单配置

    这篇文章主要讲的是vim的简单配置 相对于vim内置的一些快捷键和功能 vim的客制化才是vim的灵魂 也是vim存活31年仍被热衷的原因 如果你还不了解vim的基本操作和体系 我建议你看一下我上一篇文章 vim配置全攻略 1 vim的基本
  • 【ARM】rk3399挂载nfs报错

    挂载nfs报错mount mnt bad option for several filesystems e g nfs cifs you might need a sbi 实验1 无效 sudo apt get install cifs u
  • 基于Spring Cloud实现日志管理模块

    简介 无论在什么系统中 日志管理模块都属于十分重要的部分 接下来会通过注解 AOP MQ的方式实现一个简易的日志管理系统 思路 注解 标记需要记录日志的方法 AOP 通过AOP增强代码 利用后置 异常通知的方式获取相关日志信息 最后使用MQ
  • Python+Django+Nginx+Uwsgi(史上最全步骤)

    步骤 Python安装 第一步安装Python 很多购买的服务器linux系统中自带python2和python3 我是直接使用自带的python3 5版本的 如果系统中没有 则自己安装 如下 1 下载 wget https www pyt
  • 手写一个解析器

    作者 jolamjiang 腾讯 WXG 前端开发工程师 前言 最近工作中有一些同学在做一些效能工具的时候遇到需要写一门领域相关语言 DSL 及其解析器的场景 笔者恰好有相关的经验向大家指一下北 首先请问一下大家有没有想过这个功能怎么做 点
  • MNIST2_LGB_XGB训练预测

    针对MNIST数据集进行XGB LGB模型训练和预测 部分脚本如下 完整脚本见笔者github lgb param boosting gbdt num iterations 145 num threads 8 verbosity 0 lea
  • 如何实现区块链技术安全?

    随着人们对区块链技术的研究与应用 区块链系统除了其所属信息系统会面临病毒 木马等恶意程序威胁及大规模DDoS攻击外 还将由于其特性而面临独有的安全挑战 区块链可能是安全的 但所有与之交互的软件都是如此 在许多情况下 没有 那么区块链究竟如何
  • 选择排序分析动图演示

    选择排序 思路总结 1 首先在未排序序列中找到最小 大 元素 存放到排序序列的起始位置 2 再从剩余未排序元素中继续寻找最小 大 元素 然后放到已排序序列的末尾 3 重复第二步 直到所有元素均排序完毕 动图演示 代码示例 public st