思想
对于一个可排序的序列a,序列大小为n,则序列可分为左右两部分,大小分别为n1和n2,n1部分为已排序的(默认为从小到大排列),n2部分为未排序的,则选区n2部分第一个元素a[x],将此和它左边的元素进行比较,如果比a[x - 1]小则进行交换,否则停止循环处理,如此完成此元素的插入。当n1==n的时候则插入排序完成。
代码
//n > 1
for (int i = 1; i < n; i++)
{
for (int j = i - 1; j >= 0; j--)
{
if (a[i] < a[j])
{
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
else
{
break;
}
}
}