public class InsertSort
{
static final int SIZE=10;
static void insertionSort(int[] a) //插入排序
{
int i,j,t,h;
for (i=1;i<a.length;i++)
{
t=a[i];
j=i-1;
while(j>=0 && t<a[j])
{
a[j+1]=a[j];
j--;
}
a[j+1]=t;
System.out.print("第"+i+"步排序結果:"); //輸出每步排序的結果
for(h=0;h<a.length;h++)
{
System.out.print(" "+a[h]); //輸出
}
System.out.print("\n");
}
}
public static void main(String[] args)
{
int[] shuzu=new int[SIZE];
int i;
for(i=0;i<SIZE;i++)
{
shuzu[i]=(int)(100+Math.random()*(100+1)); //初始化數組
}
System.out.print("排序前的數組為:\n"); //輸出排序前的數組
for(i=0;i<SIZE;i++)
{
System.out.print(shuzu[i]+" ");
}
System.out.print("\n");
insertionSort(shuzu); //排序操作
System.out.print("排序后的數組為:\n");
for(i=0;i<SIZE;i++)
{
System.out.print(shuzu[i]+" "); //輸出排序后的數組
}
System.out.print("\n");
}
}