【数据结构】 排序算法总结,直接选择排序详解!

文章目录

      • 1. 排序几个重点概念的理解
      • 2. 排序算法的分析🐧
      • 3.直接选择排序

1. 排序几个重点概念的理解

在这里插入图片描述



2. 排序算法的分析🐧

在这里插入图片描述

在这里插入图片描述


3.直接选择排序

  • 🐧 begin 有可能就是 maxi ,所以交换的时候,要及时更新 maxi
    在这里插入图片描述

在这里插入图片描述


  • 🍎 直接选择排序是不稳定的,例如: 9 [9] 5 [5],排序后,因为直接选择排序是会交换数据的,排序后可能变成了 [5] 5 [9] 9
// 直接选择排序
// 时间复杂度: O(n^2)
void SelectSort(int* a, int n)
{
	int begin = 0, end = n - 1;

	while (begin < end)
	{

		int mini = begin, maxi = begin;

		for (int i = begin; i <= end; i++)
		{
			if (a[i] < a[mini])
				mini = i;

			if (a[i] > a[maxi])
				maxi = i;
		}

		Swap(&a[begin], &a[mini]);

		// 此时的 maxi 有可能已经改变
		if (begin == maxi)
			maxi = mini;


		Swap(&a[end], &a[maxi]);

		begin++, end--;
	}
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/678226.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JVM学习-监控工具(三)

jconsole 从Java5开始&#xff0c;在JDK中自带的java监控和管理控制台用于对JVM中内存、线程、和类等的监控&#xff0c;是一个基本JMX(java management extendsions)的GUI性能监控工具 三种连接方式 Local&#xff1a;使用JConsole连接是一个正在本地系统运行的JVM&#xf…

你真的会做抖音小店吗?这三个“流量密码”还有谁不知道!

哈喽~我是电商月月 互联网时代&#xff0c;电商无疑是当前阶段最赚钱的项目了 而互联网变现的关键因素就是&#xff1a;流量&#xff0c; 选择在抖音做店的原因之一&#xff0c;不外乎就是商家&#xff0c;看中了抖音内部的流量 但现实就是&#xff0c;有好多伙伴做店根本拿…

vscode 运行和调试

vscode使用断点 1.安装并激活扩展 Debugger for Chrome (弃用 --> JavaScript Debugger)Debugger for Firefox 2. 配置config文件 打开 config/index.js 并找到 devtool property。将其更新为&#xff1a; 如果你使用的是 Vue CLI 2&#xff0c;请设置并更新 config/in…

Linux环境下安装MySQL详细教程(手把手附图安装!!!)

目录 一、前言 二、安装前的环境检查 三、下载官方的 MySQL 安装包 四、开始安装 MySQL 五、尝试初次启动 MySQL 六、给MySQL 做一些简单的小配置 七、共勉 一、前言 本次专题将带大家进入一个新的专题 ---- MySQL。作为本次专题的第一篇博客&#xff0c;肯定是带大家一起…

Python魔法之旅-魔法方法(14)

目录 一、概述 1、定义 2、作用 二、应用场景 1、构造和析构 2、操作符重载 3、字符串和表示 4、容器管理 5、可调用对象 6、上下文管理 7、属性访问和描述符 8、迭代器和生成器 9、数值类型 10、复制和序列化 11、自定义元类行为 12、自定义类行为 13、类型检…

[数据集][目标检测]红外兔子检测数据集VOC+YOLO格式96张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;96 标注数量(xml文件个数)&#xff1a;96 标注数量(txt文件个数)&#xff1a;96 标注类别数…

mysql的binlog占用大量磁盘空间的解决方法

查看当前日志保存天数&#xff1a; mysql> show variables like %expire_logs_days%; ------------------------- | Variable_name | Value | ------------------------- | expire_logs_days | 0 | ------------------------- 1 row in set (0.08 sec) 默认是0&…

调用万维易源API生成AI艺术二维码

目录 1. 作者介绍2. 艺术二维码2.1 艺术二维码的作用2.2 艺术二维码的应用场景2.3调用万维易源API生成AI艺术二维码 3. 实验过程3.1算法流程3.2完整代码3.3测试结果 1. 作者介绍 韩阳&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;2023级研究生 研究方向&am…

165.二叉树:对称二叉树(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

精酿啤酒:品质与口感在啤酒创新与研发中的重要性

在啤酒行业中&#xff0c;创新与研发是推动品牌持续发展的重要动力。而品质与口感作为啤酒的核心要素&#xff0c;在啤酒创新与研发中具有不可忽视的重要性。对于Fendi club啤酒而言&#xff0c;其卓着的品质和与众不同的口感在创新与研发中发挥了关键作用。 品质是啤酒创新与研…

【mysql】ssl_choose_client_version:unsupported protocol

起因&#xff1a;项目上的DolphinScheduler连接不上数据库&#xff0c;查看worker日志提到SSL协议问题&#xff1a; com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failureCaused by: java.io.EOFException: SSL peer shut down incorrectly 我…

4. MySQL 约束

文章目录 【 1. 主键约束 PRIMARY KEY 】1.1 在创建表时设置主键约束设置单字段主键在创建表时设置联合主键 1.2 在修改表时添加主键约束1.3 删除主键约束1.4 主键自增长 AUTO_INCREMENT指定自增字段初始值自增字段不连续 【 2. 外键约束 FOREIGN KEY 】2.1 在创建表时设置外键…

使用大模型解析用户问题

前文 我在问答业务中遇到了这样的问题&#xff0c;用户的提问方式是千变万化的&#xff0c;有一种可能就是用户会为了节省时间&#xff0c;同时在一句话里面包含了多个问题&#xff0c;如用户输入“查询上城区管龄大于10年&#xff0c;管材是PE管的管线信息&#xff0c;再帮我…

kafka-集群-生产消费测试

文章目录 1、集群生产消费测试1.1、消费者消费消息1.2、生产者生产消息 1、集群生产消费测试 1.1、消费者消费消息 [rootlocalhost ~]# kafka-console-consumer.sh --bootstrap-server 192.168.74.148:9095,192.168.74.148:9096,192.168.74.148:9097 --topic my_topic11.2、生…

windows开机进入grub引导

电脑上只装了一个windows7&#xff0c;突然有一天有人为了排查一个问题&#xff0c;激活了windows&#xff0c;关机重启以后就进入grub的引导启动了 用启动盘尝试过修复引导&#xff0c;使用启动盘里的分区工具重置启动引导&#xff0c;easyBCD都试过了&#xff0c;都只生效一次…

Java项目:98 springboot在线教育系统

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本系统共有管理员、用户等角色 本在线教育系统管理员功能有个人中心&#xff0c;用户管理&#xff0c;讲师管理&#xff0c;普通管理员管理&#xff…

HR招聘面试人才测评,如何做行政服务类岗位测评?

行政服务类岗位是企业中非常重要的一类职位&#xff0c;主要职责是协助企业领导完成行政管理工作&#xff0c;如会议组织、文件归档、人员档案管理等。为了确保企业行政管理工作的高效运行&#xff0c;需要对行政服务类岗位的综合素质进行测评。具体方法如下&#xff1a; 1. …

Python:b站多个视频爬取下载

&#x1f4da;博客主页&#xff1a;knighthood2001 ✨公众号&#xff1a;认知up吧 &#xff08;目前正在带领大家一起提升认知&#xff0c;感兴趣可以来围观一下&#xff09; &#x1f383;知识星球&#xff1a;【认知up吧|成长|副业】介绍 ❤️如遇文章付费&#xff0c;可先看…

邀请新人有奖励的APP推荐:三款新用户注册有奖励的软件

邀请新人有奖励的APP推荐&#xff1a;三款新用户注册有奖励的软件 在这个数字化时代&#xff0c;许多应用程序为了扩大用户基础和增加活跃度&#xff0c;推出了邀请新人有奖励的机制。对于喜欢尝试新应用的用户来说&#xff0c;这不仅是一个获得额外奖励的好机会&#xff0c;也…

飞利浦桌面隐藏文件夹怎么恢复?一文教你搞定

在日常使用飞利浦电脑时&#xff0c;我们有时可能会因为误操作或其他原因而将某些文件夹隐藏起来。这些隐藏文件夹可能包含重要的文件&#xff0c;一旦无法找到&#xff0c;会给我们的工作和生活带来不便。因此&#xff0c;了解如何恢复飞利浦桌面上的隐藏文件夹显得尤为重要。…