【数据结构 | 直接插入排序】

直接插入排序

  • 基本思路
  • 直接插入排序
    • SelectSort

基本思路

扑克牌是我们几乎每个人都可能玩过的游戏°最基本的扑克玩法都是—边模牌,—
边理牌。加入我们拿到如图这样的扑克牌:
在这里插入图片描述

我们会按照如下理牌:

34移动至5的左侧,再将2移动到最左侧
顺序就算是理好了,这里我们的理牌方法,就是直接插入排序法

直接插入排序(StraightInsertionSort)的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。
在这里插入图片描述


我们可以同时从数组的头部和尾部同时进行排序工作:

我们首先使用maxmin 两个变量来记录最大和最小值,初始化同时为数组第一个数字
然后通过遍历整个数组,更新max和min
然后吧最小数交换至数组头部.吧最大数交换至数组尾部
缩短数组范围,再重复以上步骤,即可。

直接插入排序


在这里插入图片描述

按照以上步骤完成代码。
我们有如下数组需要排序
在这里插入图片描述

结果如下:

在这里插入图片描述

为什么出错了?
在这里插入图片描述

修改如下:
在这里插入图片描述
结果如下:
在这里插入图片描述

SelectSort

//直接插入排序
void SelectSort(int* a, int n)
{int begin = 0, end = n - 1, i;while (begin < end){int min = begin, max = begin;//同时排头和尾for (i = begin + 1; i <= end; i++){if (a[i] < a[min])min = i;if (a[i] > a[max])max = i;}Swap(&a[min], &a[begin]);if (begin != max){Swap(&a[max], &a[end]);}begin++;end--;}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

按键开关机的锂电池充放电解决方案

一、产品概述 TP4562 是一款集成线性充电管理、同步升压转换、电池电量指示和多种保护功能的单芯片电源管理SOC&#xff0c;为锂电池的充放电提供完整的单芯片电源解决方案。 TP4562 内部集成了线性充电管理模块、同步升压放电管理模块、电量检测与 LED 指示模块、保护模块、…

使用Spark操作Hudi表详细教程

Hudi Spark使用 本篇为大家带来通过Spark shell和Spark SQL操作Hudi表的方式。 Hudi表还可以通过Spark ThriftServer操作。 软件准备 Scala 2.12Flink 1.15Spark 3.3Hudi 0.13.1 Hudi编译的时候会遇到依赖下载缓慢的情况。需要换用国内源。修改settings.xml文件&#xff0c…

java常见面试题:如何使用Java进行性能调优和内存优化?

Java性能调优和内存优化是一个涉及多个方面的复杂主题。以下是一些建议和步骤&#xff0c;可以帮助你提高Java应用程序的性能和内存效率&#xff1a; 性能分析&#xff1a; 使用性能分析工具&#xff08;如VisualVM, JProfiler, YourKit等&#xff09;来监控和分析应用程序的运…

Pandas实战100例 | 案例 44: 添加新列

案例 44: 添加新列 知识点讲解 在数据分析过程中&#xff0c;经常需要基于现有数据计算新的数据列。Pandas 允许你轻松地向 DataFrame 添加新列&#xff0c;并基于现有列进行计算。 添加新列: 直接通过赋值的方式可以向 DataFrame 添加新列。新列的值可以是基于现有列的计算…

[NSSCTF Round#16 Basic]RCE但是没有完全RCE

[NSSCTF Round#16 Basic]RCE但是没有完全RCE 第一关 <?php error_reporting(0); highlight_file(__file__); include(level2.php); if (isset($_GET[md5_1]) && isset($_GET[md5_2])) {if ((string)$_GET[md5_1] ! (string)$_GET[md5_2] && md5($_GET[md…

【KaTeX】math mode字体、特殊符号

★☆✦✧ ⋆ ★ ✶✪⟡⟢⟣⟠⋄ ∗ ✽⭒⭑ ★☆✦✧ \star\bigstar ✶✪ ⟡⟢⟣⟠⋄∗✽⭒⭑ ★☆✦✧⋆★✶✪⟡⟢⟣⟠⋄∗✽⭒⭑ ☿♀♁♂⚢⚣⚥⚦⚧⚨⚩⚭⚮⚯⧪⧬⧭⧳⧲⧱⧰⧯⧮ ☿♀♁♂ ⚢⚣⚥⚦⚧⚨⚩⚭⚮⚯⧪⧬⧭⧳⧲⧱⧰⧯⧮ ☿♀♁♂⚢⚣⚥⚦⚧⚨⚩⚭⚮⚯⧪⧬⧭⧳⧲…

Protecting Intellectual Property of Deep NeuralNetworks with Watermarking

保护深度神经网络的知识产权与数字水印技术 ABSTRACT 深度学习是当今人工智能服务的关键组成部分&#xff0c;在视觉分析、语音识别、自然语言处理等多个任务方面表现出色&#xff0c;为人类提供了接近人类水平的能力。构建一个生产级别的深度学习模型是一项非常复杂的任务&a…

Redis常用连接工具

RedisInsight 官网地址&#xff1a; RedisInsight | The Best Redis GUI Redis Desktop Manager 官网地址&#xff1a; RedisInsight | The Best Redis GUI 样式&#xff1a; QuickRedis 官网地址&#xff1a; QuickOfficial - QuickRedis 样式&#xff1a; AnotherRed…

ssm基于spring和vue开发的web新闻流媒体平台论文

摘 要 如今的时代&#xff0c;是有史以来最好的时代&#xff0c;随着计算机的发展到现在的移动终端的发展&#xff0c;国内目前信息技术已经在世界上遥遥领先&#xff0c;让人们感觉到处于信息大爆炸的社会。信息时代的信息处理肯定不能用之前的手工处理这样的解决方法&#x…

xtu oj 1280 String Hash

题目描述 把字符串进行Hash&#xff0c;来判断字符串是否相等是一种很常见的技术。 对一个只含英文小写字母字符串进行Hash&#xff0c;一种比较简单的方法是把字符串看成一个26进制的数&#xff0c;a~z分别表示0~25&#xff0c;获得这个值后对某个素数p取模。但是因为a是0&am…

详解SpringCloud微服务技术栈:认识微服务、服务拆分与远程调用

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;首期文章 &#x1f4da;订阅专栏&#xff1a;微服务技术全家桶 希望文章对你们有所帮助 在此之前&#xff0c;耗时半个月&#x…

数据结构之bool类

bool类 bool 是布尔类。它是最简单的一个类&#xff0c;其取值有两种&#xff0c;1和O&#xff0c;即 True 和 False。可以这样简单地理解&#xff0c;除了1和0以及 True 和 False 的情况之外&#xff0c;但凡有值&#xff08;非空&#xff09;即为真&#xff0c;但凡无值&…

linux DHCP和DNS

DHCP dhcp 动态主机配置协议 dhcp工作原理 客户端 ------------------------------------------------->dhcp服务器 客户端会发送dhcp discover广播报文&#xff0c;寻找dhcp服务器 客户端 <-------------------------------------------------dhcp服务器 服务器收…

Java中的包机制、final和super关键字

一、包机制 关于java语言当中的包机制&#xff1a; 1.包又被称为package,java中引入package这种语法机制主要是为了方便程序的管理。 不同功能的类被分门别类放到不同的软件包当中&#xff0c;查找比较方便&#xff0c;管理比较方便&#xff0c;易维护。 2.怎么定义package呢…

第 7 章 排序算法

文章目录 7.1 排序算法的介绍7.3 算法的时间复杂度7.3.1 度量一个程序(算法)执行时间的两种方法7.3.2 时间频度7.3.3 时间复杂度7.3.4 常见的时间复杂度7.3.5 平均时间复杂度和最坏时间复杂度 7.4 算法的空间复杂度简介7.4.1 基本介绍 7.5 冒泡排序7.5.1 基本介绍7.5.2 演示冒泡…

Spring的纯注解配置

1、带改造的问题 我们发现&#xff0c;之所以我们现在离不开xml配置文件&#xff0c;是因为我们有一处很关键的配置&#xff0c;如果他要也能用注解配置&#xff0c;那么我们就可以脱离xml文件了&#xff1a; jdbc的配置 改造前&#xff1a; <context:property-placehol…

Redis的主从配置,哨兵模式,集群模式

目录 什么是主从复制&#xff1f; 主从复制的作用&#xff1f; 主从复制的流程&#xff1f; 搭建Redis的主从复制 安装Redis 环境准备 修改内核参数 安装Redis 定义systemd服务管理脚本 修改Redis配置文件&#xff08;Master节点操作&#xff09;192.168.17.25 修改Re…

js通过用 splice() 方法将一个数组插入到另一个数组的指定位置

在 JavaScript 中&#xff0c;可以使用 splice() 方法将一个数组插入到另一个数组的指定位置。splice() 方法用于向数组中添加或删除元素&#xff0c;并返回被删除的元素。 以下是一个示例代码&#xff1a; const array1 [1, 2, 3]; const array2 [4, 5, 6];const deletedE…

【数据库】聊聊MVCC机制与BufferPool缓存机制

上一篇文章&#xff0c;介绍了隔离级别&#xff0c;MySQL默认是使用可重复读&#xff0c;但是在可重复读的级别下&#xff0c;可能会出现幻读&#xff0c;也就是读取到另一个session添加的数据&#xff0c;那么除了配合使用间隙锁的方式&#xff0c;还使用了MVCC机制解决&#…

Linux重点

Linux命令的组成&#xff1f; a. 命令本身&#xff0c;选项&#xff0c;参数。查看的两个操作 a. cat 适合小文件 b. more分页查询适合中文件创建文件的选项有啥&#xff1f;创建文件的小技巧 a. 选项有-p b. 不管是否创建创建递进的文件&#xff0c;先给-p加上&#xff0c;加上…