美文网首页
直接插入排序

直接插入排序

作者: 兔子是黑老大 | 来源:发表于2020-01-09 12:09 被阅读0次

    算法思想

    用i将L[0..n]分成L[0..i-1]和L[i..n],L[0..i-1]为有序表,然后将L[i..n]中的所有元素以此的插入到前一表中,可以使用改进的哨兵的方式

    代码

    //直接插入排序,使用哨兵的形式进行,减少了一次比较
    void sort(int array[], int n){
        int i,j;
        for(i = 2; i < n; i++){
            array[0] = array[i];  //array[0]不存储数据
            for(j = i-1;array[0] < array[j]; j--) //不断在有序表中查找对应的位置,其结束条件是当需要插入的值出现在表中或者出现大于
                array[j+1] = array[j];            //要查找的数据那么就将数据插入到结束的前一个位置
                
            array[j] = array[0];
        }
    }
    

    相关文章

      网友评论

          本文标题:直接插入排序

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