直接插入排序思想:对于一个给定数组,将数组的第一个元素当做已经排好序的序列,然后每次讲数组元素的一个元素插入到该有序序列中,直到插完
思想:对于一个数组,先将第一个元素当做有序的序列,然后依次将后面的元素插入到这个序列中。
方法:每次用前一个数和要放入的元素进行比较,如果大于的话就将其向后移动,最后找到要插入的位置,在进行插入。
代码如下;
void insert_sort(int arr[], int sz)
{
int i = 0;
int j = 0;
for (i = 1; i < sz; i++)
{
//将要插入的元素与有序的最后一个元素进行比较
if (arr[i] < arr[i - 1])
{
int tmp = arr[i];
//找要插入的位置
for (j = i - 1; j >= 0 && arr[j] > tmp; j--)
{
arr[j + 1] = arr[j];
}
arr[j + 1] = tmp;
}
}
}
study hard and make progress every day!