直接插入排序

核心思想:将待插入元素一个个插入初始已有序的过程,而且插入的位置遵循使插入后仍然保持有序的原则,具体的做法一般是:从后往前枚举已有序部分来确定插入的位置。

代码实现

int str[maxn],n;//n为元素个数,数组下标为1~n
void insertSortL(){
    for(int i=2;i<=n;j++)//进行n-1趟排序 
    {
        int temp=str[i];//temp临时存放str[i]
        j=i;//j从i开始往前枚举
        while(j>1&&temp<str[j-1])//只要temp小于前一个6元素str[j-1]
        {
            str[j]=str[j-1];str[j-1]后移一位至str[j]
            j--;
        }
        str[j]=temp;//插入位置为j
    }
}