算法 class 004(选择,冒泡,插入)

选择排序:


刚进入 j 循环的样子

j 跳出循环后,b 指向最小值的坐标

然后交换 i 和 b 位置的 值

随后 i ++, b = i , i = j+1; 开始新一轮的排序,

void SelectAQort(int* arr,int size)//选择排序
{for (int i = 0; i < size-1; i++){	//i 的位置就是最小值应该放入的位置int b = i;//存储最小值下标,一开始默认是 ifor (int j = i+1; j < size;j++){if (arr[j] < arr[b])//随着j的变化{	//如果j下标的值比b下标还小的值b = j;//那么就将他赋值给 b }}//出了 j的循环,b指向的就是最小值的坐标,将 b 与 i 交换if (i == b)//处理i就是最小值的情况,continue;Swap(arr, i, b);//交换函数// 9,8,2,1,7,9,4,8,7,2,3,4 }
}

冒泡排序

以上图为例

第一次进入 j 循环

j 大于 j+1位置的数,8 和 3交换,j++ = 1;

j 大于 j+1位置的数,8 和 7交换,j++ = 2;

j 大于 j+1位置的数,8 和 4交换,j++ = 3;

j 不大于 j+1位置的数,不交换 单纯的 j++ = 4;

j 大于 j+1位置的数,9 和 5交换,j++ = 5;

j 大于 j+1位置的数,9 和 7交换,j++ = 6;

j 大于 j+1位置的数,9 和 2交换,j++ = 7;

j 大于 j+1位置的数,9 和 8交换,j++ = 8;

j 大于 j+1位置的数,9 和 4交换,j++ = 9;

j 不大于 j +1位置的数,不交换,j++ = 10;

j 大于 j+1位置的数,9 和 5交换,j++ = 11;

j 大于 j+1位置的数,9 和 7交换,j++ = 12;

j 不大于 j+1位置的数,不交换,j++ = 13

由与 j < i 所以加完之后 j 循环第一次结束

结束后 i 的位置就是最大值了

然后 i-- ,j 又重新来到 0 位置

新的循环,将是 j 遍历至 i -1的位置,i - 1的位置会得出新的最大值

i 最终的有效位 是 1

进入 i 是 1的循环

j = 0 ,j 与 j +1做比较,大于就交换然后跳出 j 的循环(j++会等于 i ,跳出),跳出 i 的循环(i -- 等于0,跳出),函数结束

如果不大于,直接跳出 j 的循环,然后跳出 i 的循环,与上面一样,只是少了一次交换。

插入排序

i 赋值 为 1 默认 1下标前面的数是有序的

j = i ,用 j 来实现插入,如果 j 小于 j -1,就交换,如果不小于,我们使用 j = 0,提前结束 j 循环。

以上图为例

j 与 j-1比较,j 不小于 j -1 ,j = 0,j循环第一次结束

i++ , j = i

j < j - 1,交换,然后 j--;

j > 0,继续判断,j 不小于 j - 1,j = 0; j循环第二次结束,

i++ , j = i;

我们的 i 前面的数都是有序的,所以,如果j 第一次判断就不小于 j - 1,,我们就可以使 j = 0,提前结束循环。

小于我们就一直往前找,如果 i 指向的数是当前最小值,在 j = 1时,j 与 j - 1,交换完后 ,

j-- = 0,会自己跳出循环,

如果在往前找的过程中有一次没有交换, 就用 j = 0;提前结束

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

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

相关文章

【Trick】获取kaggle账号的token和api(用于数据集下载)

0&#xff1a;操作背景 由于未来的科研需要用到Unet&#xff0c;但是运行学长的史山代码无法跑通&#xff0c;自己写了一个Unet并load学长的数据集效果也很差&#xff0c;于是打算从最最基础的开始&#xff0c;上github调用一个Unet并成功在公有数据集上跑一遍实例。 Unet的g…

深入理解MemCache

随着互联网应用的飞速发展&#xff0c;动态Web应用的性能问题逐渐成为开发者关注的焦点。其中&#xff0c;数据库作为系统性能的关键瓶颈&#xff0c;在用户请求量急剧增加的情况下&#xff0c;往往难以快速响应用户需求。为了解决这一问题&#xff0c;缓存技术应运而生。MemCa…

移动 APP 设计规范参考

一、界面设计规范 布局原则&#xff1a; 内容优先&#xff1a;以内容为核心进行布局&#xff0c;突出用户需要的信息&#xff0c;简化页面导航&#xff0c;提升屏幕空间利用率.一致性&#xff1a;保持界面元素风格一致&#xff0c;包括颜色、字体、图标等&#xff0c;使用户在…

redis数据结构设计

一. 数据结构简介 要搞清楚redis数据结构&#xff0c;首先需要知道和redis数据相关的三层结构&#xff1a; 五种数据类型 String&#xff08;字符串&#xff09;、List&#xff08;列表&#xff09;、Hash&#xff08;哈希&#xff09;、Set&#xff08;集合&#xff09;和 Sor…

使用npm包的工程如何引入mapboxgl-enhance/maplibre-gl-enhance扩展包

作者&#xff1a;刘大 前言 在使用iClient for MapboxGL/MapLibreGL项目开发中&#xff0c;往往会对接非EPSG:3857坐标系的地图&#xff0c;由于默认不支持&#xff0c;因此需引入mapboxgl-enhance/maplibre-gl-enhance扩展包。 在使用Vue等其他框架&#xff0c;通过npm包下载…

021-spring-springmvc

比较重要的部分 比较重要的部分 比较重要的部分 关于组件的部分 这里以 RequestMappingHandlerMapping 为例子 默认的3个组件是&#xff1a; org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping org.springframework.web.servlet.mvc.method.annotation.Requ…

使用Locust对MySQL进行负载测试

1.安装环境 pip install locust mysql-connector-python 2.设置测试环境 打开MySQL服务 打开Navicat新建查询&#xff0c;输入SQL语句 3.编写locust脚本 load_mysql.py # codingutf-8 from locust import User, TaskSet, task, between import mysql.connector import ran…

Java [后端] 开发日常记录(1)

目录 1、常用的注解 2、对字符串的处理 3、对JSON串的处理 -- The End -- 详细如下&#xff1a; 1、常用的注解 若返回的字段中有NUll&#xff0c;则不返回 JsonInclude(value JsonInclude.Include.NON_NULL) //在实体类中添加这个注解 JsonInclude(JsonInclude.Include.NON…

你有哪些Deep Learning(RNN、CNN)调参的经验?

在深度学习的实践中&#xff0c;调参是一项既艺术又科学的工作。它不仅需要理论知识的支撑&#xff0c;还需要大量的实践经验。以下是一些在RNN和CNN模型调参中积累的经验&#xff0c;希望对正在这个领域摸索的朋友们有所帮助。 1. 从成熟的开源项目开始 对于初学者来说&…

公司招产品代理,合作合同协议书怎么写?

如果你的公司招产品代理时候&#xff0c;由于合同协议不标准&#xff0c;导致客户不信任&#xff0c;或者出现过法律纠纷。这份合同协议书&#xff0c;一定能帮你解决这些问题。 标准的模版&#xff0c;各位企业老板可以直接复制套用&#xff01; 甲方&#xff08;委托方 / 产…

wxWidgets 3.2.5发布 —— 发布于2024年5月13日

稳定版3.2系列的最新版本现已在GitHub上发布&#xff0c;你可以从那里下载包含库源代码和文档的存档文件&#xff0c;以及为选定的Windows编译器&#xff08;如Microsoft Visual C、MinGW-w64和TDM-GCC&#xff09;提供的二进制文件。你还可以在线阅读此版本的更新文档&#xf…

【Ubuntu】Ubuntu server 18.04 搭建Slurm并行计算环境(包含NFS)

Ubuntu server 18.04 搭建Slurm并行计算环境&#xff08;包含NFS&#xff09; 一、Munge 认证模块 1.1、安装 munge 主节点和子节点都安装munge #安装 sudo apt update && sudo apt install munge libmunge-dev#设置开机启动 sudo systemctl enable munge sudo syste…

用css实现瀑布流布局

上效果 知识理解 column-count: 4; column-gap: 15px;实现固定四行瀑布流布局 columns: 200px auto;column-gap: 15px;由浏览器根据容器的宽度自动调整&#xff0c;尽可能一行多个200px宽度的列数 <!DOCTYPE html> <html lang"en"><head><me…

FFmpeg 编码和解码

文章目录 音频格式AACADIF音频数据交换格式ADTS音频数据传输流 音频解码音频编码 视频格式H264GOP图像组I帧&#xff0c;P帧&#xff0c;B帧H264压缩技术H264压缩级别H264视频级别H264码流结构SPSPPS 解码视频编码视频 音频格式 AAC AAC全称 Advanced Audio Coding&#xff0…

计算机的错误计算(一百九十六)

摘要 用两个大模型计算 arccos(0.444). 结果保留 4位有效数字。两个大模型的计算结果相同&#xff0c;并均有误差。 例1. 计算 arccos(0.444). 结果保留 4位有效数字。 下面是与一个大模型的对话。 以上为与一大模型的对话。 下面是与另一大模型的对话。 点评&#xff1a; &…

【pytorch】循环神经网络

如果说卷积神经网络可以有效地处理空间信息&#xff0c;那么循环神经网络则可以更好地处理序列信息。循环神经网络通过引入状态变量存储过去的信息和当前的输入&#xff0c;从而可以确定当前的输出。 1 循环神经网络 隐藏层和隐状态指的是两个截然不同的概念。隐藏层是在从输…

MySQL root用户密码忘记怎么办(Reset root account password)

在使用MySQL数据库的的过程中&#xff0c;不可避免的会出现忘记密码的现象。普通用户的密码如果忘记&#xff0c;可以用更高权限的用户&#xff08;例如root&#xff09;进行重置。但是如果root用户的密码忘记了&#xff0c;由于root用户本身就是最高权限&#xff0c;那这个方法…

GPU 进阶笔记(二):华为昇腾 910B GPU

大家读完觉得有意义记得关注和点赞&#xff01;&#xff01;&#xff01; 1 术语 1.1 与 NVIDIA 术语对应关系1.2 缩写2 产品与机器 2.1 GPU 产品2.2 训练机器 底座 CPU功耗操作系统2.3 性能3 实探&#xff1a;鲲鹏底座 8*910B GPU 主机 3.1 CPU3.2 网卡和网络3.3 GPU 信息 3.3…

word中插入zotero引用

1、参考文献末尾没有文献&#xff1f; 在文献条目要显示的地方点击“refresh” 2、参考文献条目没有悬挂缩进&#xff1f; 把“书目”添加到样式库中&#xff0c;修改样式为悬挂缩进1.5字符 3、交叉引用&#xff1f; 宏 新建一个宏 粘贴下面代码 Public Sub ZoteroLinkCita…

【服务器项目部署】⭐️将本地项目部署到服务器!

目录 &#x1f378;前言 &#x1f37b;一、服务器选择 &#x1f379; 二、服务器环境部署 2.1 java 环境部署 2.2 mysql 环境部署 &#x1f378;三、项目部署 3.1 静态页面调整 3.2 服务器端口开放 3.3 项目部署 ​ &#x1f379;四、测试 &#x1f378;前言 小伙伴们大家好…