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

    直接插入排序的时间复杂度为O(n*n)空间复杂度为O(1)是稳定的排序算法

    直接插入排序是把序列分成有序队列和无序队列,再把无序队列中的数一个个插入到有序队列中恰当的位置

    void InsertSort(int* data, int length)
    {
        if( data == NULL  || length <=0 )
            return;
    
        for(int i = 1; i < length; ++i)
        {
            if( data[i] < data[i-1]) //有序序列为(0~i-1),无序序列为(i~length-1)
            {
                int temp = data[i]; //哨兵
                int j= i-1;
                for(; j>=0 &&  data[j] > temp; --j)  //从有序序列的最后一个数开始比较,即寻找恰当的插入位置
                {
                    data[j+1] = data[j];
                }
                data[j+1] = temp;
            }
        }
    }
  • 相关阅读:
    登录认证
    json
    关于优化
    网站资源
    设计模式
    Python
    查兰IP
    Linux命令
    centos7.0KVM虚拟化
    Shell数组
  • 原文地址:https://www.cnblogs.com/neverleave/p/2951904.html
Copyright © 2011-2022 走看看