直接插入排序

算法思想

用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];
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容