关闭页面特效

插入排序总结(来自算法导论)

  自己总结的!什么是插入 排序 ,一直 感觉非常的 含糊不清。

下面 来做一个简单的总结,我因为不会 画图 ,所以用文字来进行总结,

如果有一个 未排序的数组,如果这个数组是 :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
关于博主:一个普通的小码农,为了梦想奋斗
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!

posted @   yangliwen  阅读(269)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
0
0
关注
跳至底部
document.getElementById("homeTopTitle").innerText="ღKawaii";
点击右上角即可分享
微信分享提示