美文网首页
直接插入排序算法

直接插入排序算法

作者: 阮腾飞 | 来源:发表于2016-07-12 10:40 被阅读23次

    直接插入排序算法的核心:每次取一个待排序的数字和一个已经排好序的队列进行比较,找到合适的位置进行插入。

    以下面一组数字作为引入,我们做一个升序的:

    98,69,75,47,89,100,90,70

    1.在第一次的时候,我们认为98就是有序的了,那么拿98后面的一个数69进行比较,发现69<98,需要进行排序。我们把69记录下来作为”哨兵“(待排序的就是哨兵)X = 69,同时记录下原先有序数组的最后一个数据的index,这里也就是98的下标0,j = 0.遍历前j个数,与哨兵做比较。69小于98,98后移,前面没有数据了,69排在前面。

    排序完的数据如下:(69,98),75,47,89,100,90,70

    2.现在认为69,98是一个有序的数组了,按照步骤一,我们列下逻辑:

    array[2] < array[1],需要排序

    记录标志位,记录哨兵:X = 75,j = 1。

    哨兵与a[j]比较,75< a[1],a[j]占住a[j + 1]位置,数据变成如下(69,98),98,47,89,100,90,70

    j减1,j变成0   哨兵继续与a[0]比较,75 > 69。结束比较。哨兵占住a[0]位置

    按照上面的逻辑,编写代码如下:

    相关文章

      网友评论

          本文标题:直接插入排序算法

          本文链接:https://www.haomeiwen.com/subject/vlnjjttx.html