当前位置: 首页 > news >正文

算法--插入排序

代码

void insertion sort(Type* a,int n)
{Type key;for (int i = ; i < n; i++){key = a[i];int j = i - 1;while(i >= 0 && a[i] > key){a[j+1] = a[j];j--;}a[j+1]=key;}
}

解释

假设有一个数组a = {5,2,4,6,1,3},
第一次循环(i = 1)

  • key = a[1] = 2; j = i - 1 = 0.
  • 进入while 循环:判断 j >= 0 && a[j] > key (既 0 >= 0 && 5 > 2),条件成立。
  • 执行a[j + 1] = a[j]; ,也就是a[1] = a[0],此时数组变为{5,5,4,6,1,3}
  • 执行j–;,j变为-1,while循环结束。
  • 执行a[j + 1] = key;,此时 j = -1,所以 j + 1 = 0,既 a[0] = 2.现在数组变为{2,5,4,6,1,3},"已排序部分[2,5]"是有序的
    第二次循环(i = 2)
  • key = a[2] = 4; j = i - 1 = 1.
  • 进入while 循环:判断 j >= 0 && a[j] > key (既 0 >= 0 && 5 > 2),条件成立。
  • 执行a[j + 1] = a[j]; ,也就是a[2] = a[1],此时数组变为{2,5,5,6,1,3}
  • 执行j–;,j变为 0,再次判断while条件; 0 >= 0 && a[0] > 4不成立,循环结束。
  • 执行a[j + 1] = key;,此时 j = 0,所以 j + 1 = 1,既 a[1] = 4.现在数组变为{2,4,5,6,1,3},"已排序部分[2,4,5]"是有序的。
    。。。。。。。。。。。。。。。。
    如果while循环里要执行多次就每次将大的数复制到后面,就会覆盖之前复制的数字。例如
    a = {1,2,4,5,6,3}要将3排序
    1.{1,2,4,5,6,6}->{1,2,4,5,5,6}->{1,2,4,4,5,6}->{1,2,3,4,5,6,}
    要排序的值一直在临时变量中。
http://www.dtcms.com/a/384383.html

相关文章:

  • 领码方案|权限即数据:企业系统中的字段级访问控制架构实战(Ver=1.0)
  • 【面试场景题】支付金融系统与普通业务系统的一些技术和架构上的区别
  • 数证杯顺心借JAVA网站重构详细版(服务器取证基础考点+检材+题目+重构视频)
  • 【Unity】【Photon】Fusion2中的玩家输入系统 学习笔记
  • Vue3 + Three.js 实战:自定义 3D 模型加载与交互全流程
  • 【Leetcode hot 100】102.二叉树的层序遍历
  • [Windows] 微软 .Net 运行库离线安装包 | Microsoft .Net Packages AIO_v09.09.25
  • java通过RESTful API实现两个项目之间相互传输数据
  • C++基础(13)——list类的模拟实现
  • C#/.NET/.NET Core技术前沿周刊 | 第 54 期(2025年9.8-9.14)
  • 快速上手 Jenkins
  • 【C++】STL--List使用及其模拟实现
  • Go语言双向链表list.List详解
  • 机器学习-Boosting
  • Jenkins运维之路(Jenkins流水线改造Day02-2-容器项目)
  • 【C++STL】list的详细用法和底层实现
  • Elastic APM 与 Elasticsearch 集成:构建完整可观测性栈
  • 从零搭建MCP Server:Python开发、部署与应用全流程实战
  • Mac本地Docker拉取镜像本地挂载项目
  • 购物车效果
  • 在Ubuntu 18.0.4 编译最新版Python-3.13.7
  • 如何在ubuntu下用pip安装aider,解决各种报错问题
  • Redis 高可用实战源码解析(Sentinel + Cluster 整合应用)
  • 测井曲线解读核心三属性(岩性 / 物性 / 含油气性)实用笔记
  • 【图像理解进阶】VLora参数融合核心原理与Python实现
  • Leetcode 169. 多数元素 哈希计数 / 排序 / 摩尔投票
  • EasyPoi:java导出excel,并从OSS下载附件打包zip,excel中每条记录用超链接关联附件目录
  • Win10系统下载并安装声卡驱动
  • JavaEE初阶——初识计算机是如何工作的:从逻辑门到现代操作系统
  • CKA05--service