插入排序总结(来自算法导论)
自己总结的!什么是插入 排序 ,一直 感觉非常的 含糊不清。
下面 来做一个简单的总结,我因为不会 画图 ,所以用文字来进行总结,
如果有一个 未排序的数组,如果这个数组是 :0,22,11,55,2
那么 我们 怎么 来 进行排序呢,如果是使用 插入 排序。
首先 我们 要 构造一个循环,这个循环是从2~LENGTH。
为什么是从2开始,而不是从1开始呢?
因为第一个元素无论如何是不需要 排序的,所以可以从2开始 进行排序。
当我们第一次排序的时候,那么 肯定是把第二个元素和第一个元素进行比较。
这次是进行 从小 到大的排序,好,我们 开始进行排序,第一次把第二个元素和第一个 元素 进行比较,
由于这“第二个”元素可以是第N个元素,所以 我们有必要记录一下下标,我们把这个第N个元素的下标放到临时 变量 里面。
然后我们 开始从第N-1个元素进行比较,我们必须去移动1~N-1个元素的位置,当然是向后移动,
如果 元素这个第N个元素的值和 前面的值比较,如果 N-1(N是 变量)的值大于记录的值,那么我们先做的一件事 就是
把变量中的前一个元素的值赋给后一个,然后 下标减一,这样 就实现了元素后移,当然最大的后移下标是这次外层循环的下标 。
然后如果都KEY小于下标的值,那么循环结束,找到了和下标匹配的最大元素的值。
然后把KEY值赋给这个下标的后一位值(这里还是不太明白 ),为什么这样呢?
因为 外层循环其实是从第一项 开始的,而这里的里层循环是从0开始的!所以我们最多只能把这个值赋给第一项,而不是第0项!
照这个思路理解,其实我们是给第1项到 第N项进行了排序!不知道 我理解得对不对!
然后其他的就 依次类推 了 吧。
__EOF__
作 者:ღKawaii
出 处:https://www.cnblogs.com/kmsfan/p/4765907.html
关于博主:一个普通的小码农,为了梦想奋斗
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本。
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!

出处:http://www.cnblogs.com/kmsfan
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
欢迎大家加入KMSFan之家,以及访问我的优酷空间!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?