插入排序法

前言

      最近买了一本算法导论的书籍,同学念研究生就是用的这本书,其实这些算法数据结构直接就该弄完的,都工作四年了,只是知道一点说来惭愧,不懂算法的程序员不是好的程序员。算法导论刚开,从前往后看的,第一章的插入法看书的图还是看的不明白容易产生误导,于是自己写了代码才更加的理解了。

正文

      一是看书的文字描述比较枯燥,二是看书上的图感觉不对劲儿,也是自己理解有限。

      这是书中的原图:

     

      关于从上图中(d)开始我自我感觉这画的不好,下面是我自己做的更加容易理解插入算法的图

     

      也就是遍历,从索引1的位置开始,每次遍历的item作为key来进行对比作为遍历的条件。背景色为粉色的项为每次遍历要走的key,外面的大遍历是整个数组的长度,而里面的小循环实际是key的index倒序的遍历。那么每次遍历自我感觉可以是把每次要遍历的项指向了key,通过与key的比较确定每一项的位置。每次对比如果没有打错号就是可以对比并且符合对比后不是key项的将要像右移动一位。如果没有对比那么就是保持位置不动即可。

     代码演示C#:         

    

     这样感觉起来更容易理解一下,不明白的时候找代码调试一下就豁然开朗。

总结

     人在做,天在看。认真做好自己,工作时候就是工作什么时候干什么事情。

转载于:https://www.cnblogs.com/hackerxiaoyon/p/5485919.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值