插入排序移动数据找到合适的位置插入,保持右边的部分不变化(这个选择排序相反,选择排序是右边的部分变化左边已排序的部分不变化)。
通过移动和插入实现数据的有序排列。
public static void InsertSort()
{
int N=10;
int a[] = {2,-1,5,4,1,6,8,9,7,0};
int key;
int i,j;
for(i=1;i<N;i++)
{
key = a[i];
for(j=i-1;j>=0;--j)
{
if(key<a[j])
{
a[j+1] = a[j];
}
else
break;
}
a[j+1] = key;
}
for(i=0;i<N;i++)
{
System.out.printf("%d ",a[i]);
}
}