插入排序

  1. 插入排序

插入排序

void insertionSort( ElementType A[], int N )
{
    int i, j;
    ElementType tmp;
    for( i = 1; i < N; i++ )
    {
        tmp = A[i];
        for( j = i; j > 0 && A[j-1] > tmp; j-- )
        {
            A[j] = A[j-1];
        }
        A[j] = tmp;   
    }

}

Key Mind:

将下标i读取到的值保存(隐喻腾空i的位置),第二个for循环指针回走检查,只要比与保存的值大就往后移。j最大值为N-1,所以两个for循环总次数为N^2 ,即时间复杂度为O(N^2 )。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 876208453@qq.com

文章标题:插入排序

本文作者:Cai Jun

发布时间:2019-02-26, 11:24:25

最后更新:2019-02-28, 03:28:21

原始链接:http://johncaijun.github.io/2019-02-27-插入排序/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏