一、插入排序特点:
每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。
时间复杂度:O(n2)
稳定性:稳定
二、插入排序图形
三、插入排序的代码:
交换式
for (int i = 1; i <= a.Length-1; i++)
{
for (int j = i - 1; j >= 0; j--)
{
if (a[j + 1] < a[j])
{
int temp = a[j + 1];
a[j + 1] = a[j];
a[j] = temp;
}
else
{
break;
}
}
移步式
for (int i = 1; i <=a.length-1; i++)
{
position = i;
int temp = a[i];
for (int j = i - 1; j >= 0; j--)
{
if (temp < a[j])
{
a[j + 1] = a[j];
position = j;
}
else
{
break; //跳出一层循环
}
}
a[position] =temp ;
}