插入排序-直接插入排序

直接插入排序

一、定义

  直接插入排序是最简单的排序方法,它的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录增1的有序表。

二、具体实现

  整个排序过程为进行n - 1趟插入,即先将序列中的第一个记录看成是一个有序的子序列,然后从第二个记录开始逐个进行插入,直至整个序列变成按关键字非递减有序为止。
  从空间来看,它只需要一个记录辅助空间,从时间来看,排序的基本操作为:比较两个关键字的大小和移动记录。直接插入排序是稳定排序算法,时间复杂度为o(n^2);
在这里插入图片描述

//list[0]不做哨兵
void insert_sort(ElementType list[],int n){
    
    
    ElementType temp;//辅助存储空间
    int i,j;
    for(i = 1;i < n;i++){
    
    
        temp = list[i];
        for(j = i - 1;j >= 0 && list[j] > temp;j--)//往后移动,直至遇到比temp小的值为止。
            list[j + 1] = list[j];     
        list[j + 1] = temp;//插入位置
    } 
}

Guess you like

Origin blog.csdn.net/psl1234554321/article/details/106166320