基本思想:
直接插入排序的基本思想是将待排序的元素,插入到已排好的有序序列中,从而得到一个完整的有序序列。
动画演示如下:
C语言代码实现:
void InsertSort(int* a, int n)
{
for (int i = 0;i < n-1;i++)
{
int end = i;
int tmp = a[end + 1];
while (end >= 0)
{
if (tmp < a[end])
{
a[end + 1] = a[end];
end--;
}
else
{
break;
}
}
a[end + 1] = tmp;
}
}
实现的代码的时候,先完成单趟的排序(即while部分循环),再套一个循环控制end,实现多趟的循环。