zoukankan      html  css  js  c++  java
  • 插入排序法

    前言

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

    正文

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

          这是书中的原图:

         

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

         

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

         代码演示C#:         

        

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

    总结

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

  • 相关阅读:
    C++builder 系统时间
    oracle 备份某张表
    Pascal 中对于常量的初始化
    Delphi 正则表达式
    Lazarus 中的字符串 String,AnsiString,UnicodeString,UTF8String,WideString
    Lazarus 指针,数组,字符串
    准备使用PostgreSQL
    Freepascal 中的泛型使用
    如何生成密钥文件Snk
    挖掘经典:几乎被人遗忘的HTML七种用法
  • 原文地址:https://www.cnblogs.com/hackerxiaoyon/p/5485919.html
Copyright © 2011-2022 走看看