Arvin_JIN

插入排序

算法原理:在数组的的有序区中找到待排序的元素要插入的位置,将该位置后面的元素整体后移,将待排序的元素插入该位置,重复以上步骤,直到倒排序的元素全部插入完成为止。

图示:

 

代码:

void InsertSort(int a[], int n)
{
    for (int i = 1; i < n; i++)
    {
        int temp = a[i];//待插入的数据并存入temp
        int j = i - 1;//待插入的数据前一个数据的位置
        while (temp < a[j] && j >= 0)//在待插入的数据前面排好序的序列中找到要插入的位置
        {
            a[j + 1] = a[j];//将要插入位置后面的数据整体后移一位,为新插入的数据腾出空间
            j--;
        }
        a[j + 1] = temp;//插入数据
    }
}

 

posted on 2018-07-25 20:18  Arvin_JIN  阅读(213)  评论(0编辑  收藏  举报

导航