美文网首页
插入排序

插入排序

作者: Jfeng666 | 来源:发表于2018-08-17 14:48 被阅读0次

    背景

    对拥有N个元素的线性表进行排序
    假设这N个元素装在数值a中

    原理

    将新加入的元素先放在末端(或给后面选择的元素),将它在前面排序好的数据中找个合适的位置放置。

    时间复杂度

    o(n)~o(n*(n-1)/2)

    C代码实现

    int i,j,k;
    for (i=2;i<=n;i++)
    {
        j=i; //如果是边读入边插入i的初始值设为1,并且可以在此处添加读入语句
        while ((j-- > 0) && a[j+1]<a[j])
        {
            k=a[j+1];
            a[j+1]=a[j];
            a[j]=k;
        }
    }
    

    直接插入排序

    int tmp,i,j;
    for (i=2;i<=n;i++)
    {
        tmp=a[i];
        j=i-1;
        while (j>=0 && tmp<a[j])
        {
            a[j+1]=a[j];
            j--;
        }
        a[j+1]=tmp;
    }
    

    相关文章

      网友评论

          本文标题:插入排序

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