算法 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;提前结束
相关文章:

算法 class 004(选择,冒泡,插入)
选择排序: 刚进入 j 循环的样子 j 跳出循环后,b 指向最小值的坐标 然后交换 i 和 b 位置的 值 随后 i , b i , i j1; 开始新一轮的排序, void SelectAQort(int* arr,int size)//选择排序 {for (int i 0; i < size-1; i){ //i 的位置就是…...
linux---awk命令详细教程
awk是一种强大的编程语言,用于在Linux/Unix系统下对文本和数据进行处理。以下是对awk的详细教程: 一、awk简介 awk由Alfred Aho、Brian Kernighan和Peter Weinberger三人开发,其名称分别代表这三位作者姓氏的第一个字母。awk支持用户自定义…...

一个通用的居于 OAuth2的API集成方案
在现代 web 应用程序中,OAuth 协议是授权和认证的主流选择。为了与多个授权提供商进行无缝对接,我们需要一个易于扩展和维护的 OAuth 解决方案。本文将介绍如何构建一个灵活的、支持多提供商的 OAuth 系统,包括动态 API 调用、路径参数替换、…...

STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
SMEC88ST SDK开发包下载 目前市场上很多嵌入式产品方案都是可以破解复制的,主要是因为方案主芯片不具备防破解的功能,这就导致开发者投入大量精力、财力开发的新产品一上市就被别人复制,到市场上的只能以价格竞争,最后工厂复制的产…...

QML学习(五) 做出第一个简单的应用程序
通过前面四篇对QML已经有了基本的了解,今天先尝试做出第一个单页面的桌面应用程序。 1.首先打开Qt,创建项目,选择“QtQuick Application - Empty” 空工程。 2.设置项目名称和项目代码存储路径 3.这里要注意选择你的编译器类型,以及输出的程…...
深入解析Android Framework中的android.location包:架构设计、设计模式与系统定制
深入解析Android Framework中的android.location包:架构设计、设计模式与系统定制 目录 引言android.location包概述核心类解析 LocationManagerLocationProviderLocationCriteriaGpsStatusGpsStatus.ListenerLocationListener位置服务的工作原理位置信息的获取与处理GPS状态…...

【C++11】类型分类、引用折叠、完美转发
目录 一、类型分类 二、引用折叠 三、完美转发 一、类型分类 C11以后,进一步对类型进行了划分,右值被划分纯右值(pure value,简称prvalue)和将亡值 (expiring value,简称xvalue)。 纯右值是指那些字面值常量或求值结果相当于…...

mongodb(6.0.15)安装注意事项,重装系统后数据恢复
window10系统 上周重装了系统,环境变量之类的都没有了。现在要恢复。 我电脑里之前的安装包没有删除(虽然之前也没在C盘安装,但是找不到了,所以需要重新下载安装),长下图这样。这个不是最新版本࿰…...
union的实际使用
记录一下,免得忘记: 1、定义一个共用体变量 这里定义一个64位变量 i2creg_rev,然后通过共用体定义两个位变量bits和bits_reverse,通过bit可以访问指定位的值大小,不需要自己再左移右移转换。 bits_reverse是bits的对…...

EKF 自动匹配维度 MATLAB代码
该 M A T L A B MATLAB MATLAB代码实现了扩展卡尔曼滤波( E...
Oracle复合索引规则指南
在Oracle中可以创建组合索引,即同时包含两个或两个以上列的索引。在组合索引的使用方面,Oracle有以下特点: 1、 当使用基于规则的优化器(RBO)时,只有当组合索引的前导列出现在SQL语句的where子句中时&#…...
JS - Array Api
判断一个对象是否为数组 /* 语法: Array.isArray(object); 参数:object 必需,要测试的对象。返回值 如果 object 是数组,则为 true;否则为 false。 如果 object 参数不是对象,则返回 false。 */ 一、改…...
【JS】for-in 和 for-of遍历对象的区别
【介绍】 for-in 和 for-of 都是 JavaScript 中用于遍历数据结构的循环语句,但它们的工作原理和适用场景有所不同。特别是它们在遍历对象时的行为是不同的。 【区别】 for-in 遍历对象 for-in 是用于遍历对象的 可枚举属性的键名(属性名)…...
【每日学点鸿蒙知识】ets匿名类、获取控件坐标、Web显示iframe标签、软键盘导致上移、改变Text的背景色
1、HarmonyOS ets不支持匿名类吗? 不支持,需要显式标注对象字面量的类型,可以参考以下文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/typescript-to-arkts-migration-guide-V5#%E9%9C%80%E8%A6%81%E6%…...

深度学习blog- 数学基础(全是数学)
矩阵:矩阵是一个二维数组,通常由行和列组成,每个元素可以通过行索引和列索引进行访问。 张量:张量是一个多维数组的抽象概念,可以具有任意数量的维度。除了标量(0D张量)、向量(…...
最后100米配送
1. 项目概述 1.1 项目目标 集成无人机与电动车:设计并实现将无人机固定在电动车上,利用电动车的电源进行飞行,实现高楼内部从电动车位置到用户办公/居住地点的最后100米精准配送。低成本实现:通过利用电动车现有的电源和结构&am…...

Linux的进程替换以及基础IO
进程替换 上一篇草率的讲完了进程地址空间的组成结构和之间的关系,那么我们接下来了解一下程序的替换。 首先,在进程部分我们提过了,其实文件可以在运行时变成进程,而我们使用的Linux软件其实也是一个进程,所以进一步…...
《计算机网络A》单选题-复习题库
1. 计算机网络最突出的优点是(D) A、存储容量大B、将计算机技术与通信技术相结合C、集中计算D、资源共享 2. RIP 路由协议的最大跳数是(C) A、13B、14C、15D、16 3. 下面哪一个网络层次不属于 TCP/IP 体系模型(D&a…...

闲谭Scala(2)--安装与环境配置
1. 概述 Java开发环境安装,需要两步,第一安装JDK,第二配置环境变量。 Scala的话,也是两步,第一安装Scale环境,第二配置环境变量。 需要注意的是,配置环境变量,主要是想让windows操…...

Python基于卷积神经网络的车牌识别系统开发与实现
1. 简介 车牌识别是人工智能在交通领域的重要应用,广泛用于高速违章检测、停车场管理和智能交通系统等场景。本系统通过基于卷积神经网络(CNN)的深度学习算法,结合 Python 和 MySQL 实现车牌的快速识别与管理。 系统特点&#x…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...