【数据结构 | 直接选择排序】

直接选择排序

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

基本思路

直接插入排序(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/628571.shtml

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

相关文章

UE4使用技巧

打开蓝图编辑器时不是打开一个新窗口&#xff0c;而是作为主窗口 适用于全部的打开新窗口的操作 蓝图编译时自动保存 开始游戏后立即捕获鼠标

Linux 内核被冬季风暴 “封印“

Linus Torvalds在内核邮件列表上宣布&#xff0c;由于他所在的美国俄勒冈州波特兰地区受到严重冬季风暴的影响&#xff0c;导致网络和电力中断。波特兰及其周边地区气温急降至零下 -10C&#xff0c;因此他不得不临时中断对Linux 6.8内核的合并窗口操作。 Linus于1月7日发布了Li…

PyTorch损失函数(二)

损失函数 5、nn.L1Loss nn.L1Loss是一个用于计算输入和目标之间差异的损失函数&#xff0c;它计算输入和目标之间的绝对值差异。 主要参数&#xff1a; reduction&#xff1a;计算模式&#xff0c;可以是none、sum或mean。 none&#xff1a;逐个元素计算损失&#xff0c;返…

MongoDB 启动提示错误code=killed, signal=ABRT

1.停止MongoDB sudo systemctl stop mongod 2.检查数据损坏 sudo mongod --repair --dbpath /var/lib/mongodb 3.赋权限 chown -R mongodb:mongodb /var/lib/mongodb chown mongodb:mongodb /tmp/mongodb-27017.sock 如果不赋权限&#xff0c;启动的时候则会提示 4.启动Mo…

静态路由添加404页面

静态路由添加404页面 引入404页面路由代码&#xff1a; {path: *,name: 404,component: () > import(/views/page404)}404页面样式

meter报OOM错误,如何解决?

根据在之前的压测过程碰到的问题&#xff0c;今天稍微总结总结&#xff0c;以后方便自己查找。 一、单台Mac进行压测时候&#xff0c;压测客户端Jmeter启动超过2000个线程&#xff0c;Jmeter报OOM错误&#xff0c;如何解决&#xff1f; 解答&#xff1a;单台Mac配置内存为8G&…

小红书青年文化洞察:新“旷野文学”兴起,用户回归人间清醒?

社交媒体的“议程设置”能够影响用户的关注焦点&#xff0c;乃至影响舆论风向&#xff0c;但是以UGC生态为主的小红书&#xff0c;受众手中的话语权影响力变大&#xff0c;用户能识别、参与&#xff0c;甚至抵抗议程设置。 用户越来越清醒&#xff0c;不再是“电视喂什么&…

MySQL的单表查询

单表查询的素材&#xff1a; 一、单表查询 素材&#xff1a; 表名&#xff1a;worker-- 表中字段均为中文&#xff0c;比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 floa…

在linux环境下安装lnmp

lnmp官网&#xff1a;https://lnmp.org 一&#xff1a;lnmp安装 参考&#xff1a;https://lnmp.org/install.html 1&#xff1a;下载lnmp安装包 wget https://soft.lnmp.com/lnmp/lnmp2.0.tar.gz -O lnmp2.0.tar.gz 2&#xff1a;解压lnmp安装包 tar zxf lnmp2.0.tar.gz …

01章【JAVA开发入门】

计算机基本概念 计算机组成原理 计算机组装 计算机&#xff1a;电子计算机&#xff0c;俗称电脑。是一种能够按照程序运行&#xff0c;自动、高速处理海量数据的现代化智能电子设备。由硬件和软件所组成&#xff0c;没有安装任何软件的计算机称为裸机。常见的形式有台式计算机、…

leetcode-344. 反转字符串、9. 回文数

题目1&#xff1a; 解题方法 直接用reverse()即可 代码&#xff1a; class Solution(object):def reverseString(self, s):""":type s: List[str]:rtype: None Do not return anything, modify s in-place instead."""return s.reverse()如果不…

动态规划day09(打家劫舍,树形dp)

目录 198.打家劫舍 看到题目的第一想法 看到代码随想录之后的想法 自己实现过程中遇到的困难 213.打家劫舍II 看到题目的第一想法 看到代码随想录之后的想法 自己实现过程中遇到的困难 337.打家劫舍 III(树形dp) 看到题目的第一想法 看到代码随想录之后的想法 自己实…

PLC绝对定位指令DDRVA往复运动(三菱FX系列简单状态机编程)

有关状态机的具体介绍,专栏有很多文章,大家可以通过下面的链接查看: https://rxxw-control.blog.csdn.net/article/details/125488089https://rxxw-control.blog.csdn.net/article/details/125488089三菱FX系列回原功能块介绍 https://rxxw-control.blog.csdn.net/article…

【MATLAB】 HANTS滤波算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~ 1 基本定义 HANTS滤波算法是一种时间序列谐波分析方法&#xff0c;它综合了平滑和滤波两种方法&#xff0c;能够充分利用遥感图像存在时间性和空间性的特点&#xff0c;将其空间上的分布规律和时间上的变化规律联系起来…

怎么把一个网站地址生成二维码?扫码跳网站页面

怎么把一个网站地址生成二维码&#xff1f;现在经常会发现扫描日常生活中的一些二维码会跳转到一个对应的网站页面&#xff0c;那么这种类型的二维码是如何生成的呢&#xff1f;如果大家也想要将网址生成二维码图片使用&#xff0c;那么最简单快捷的方法就是找合适的二维码生成…

单片机中的PWM(脉宽调制)的工作原理以及它在电机控制中的应用。

目录 工作原理 在电机控制中的应用 脉宽调制&#xff08;PWM&#xff09;是一种在单片机中常用的控制技术&#xff0c;它通过调整信号的脉冲宽度来控制输出信号的平均电平。PWM常用于模拟输出一个可调电平的数字信号&#xff0c;用于控制电机速度、亮度、电压等。 工作原理 …

【Maven笔记3】Maven基础入门案例

本篇通过一个最基础的入门案例&#xff0c;熟悉一下maven最基础的使用方法。 编写POM maven项目的核心是pom.xml文件&#xff0c;pom定义了项目的基本信息&#xff0c;用于描述项目如何构建&#xff0c;声明项目依赖等等。 这里我们新建一个maven-demo-hello项目&#xff0c;…

【用队列实现栈】【用栈实现队列】Leetcode 232 225

【用队列实现栈】【用栈实现队列】Leetcode 232 225 队列的相关操作栈的相关操作用队列实现栈用栈实现队列 ---------------&#x1f388;&#x1f388;题目链接 用队列实现栈&#x1f388;&#x1f388;------------------- ---------------&#x1f388;&#x1f388;题目链…

TCP 的三次握手和四次挥手

Java 面试题 TCP 三次握手 第一次握手&#xff1a;客户端向服务端发送SYN包。报文中标志位SYN1&#xff0c;序列号seqx&#xff08;x为随机整数&#xff09;。此时客户端进入了 SYN_SEND 同步已发送状态。 第二次握手&#xff1a;服务端回复客户端SYNACK包。报文中标志位SYN1&…

宿舍管理系统的设计与实现:基于Spring Boot、Java、Vue.js和MySQL的完整解决方案

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…