基本思想:
每一步将一个待排序的元素,按其排序码的大小,插入到前面已经排好序的一组元素的合适位置上去,直到元素全部插完为止。
具体代码实现:
void InsretSort(int arr[], int size)
{
int i = 1;
for (i = 1; i < size; i++)
{
int key = arr[i];
int end = i - 1;
//找插入位置
while (end >= 0 && key < arr[end])
{
//搬移数据
arr[end + 1] = arr[end];
end--;
}
//插入元素
arr[end + 1] = key;
}
}