重温算法导论(一) 插入排序

来源:互联网 发布:hosts网络源 每日更新 编辑:程序博客网 时间:2024/05/17 06:33

之所以会重温算法和数据结构,与对逐渐开发的过程中发现的问题,渐渐的对算法和数据结构对程序设计及稳定性的重要作用。

现在,很多人都很难重新安静的开始重新的阅读这些经典、

如果想拜读一遍算法导论,而又因为难度太大看不下去的,可以参考MIT的算法导论的视频,虽然不清晰,但是讲得非常好!

关于插入排序,这是算法导论中讲到的第一个排序算法,这个算法的时间复杂度O(n^2),具体的算法的计算和证明可以参考原

书的讲解。

插入排序的伪代码如下:

InsertSort(A)//A[1,2,….n]

         Forj<-2 to length(A)

           Do X = A[j]

                   I=j-1

                   Whilei >0 and A[i] >= X

                            A[i+1]<- A[i]

                            i= i-1

                   A[i+1]<- x


其实原理很简单,就是从j位置提取一个数出来,腾出一个位置给A[I]往后移动,A[I]如果大于等于提取出来的数值,则A[I]往后移动一个位置,

否则,将A[J] 就插入到A[I+1]的位置,如果循环j从2到数数组的尾部,就实现了整个插入排序

C++, Python 实现代码后续补上 待续


原创粉丝点击