标签:
public class InsertSort {
public static void main(String[] args)
{
//数组声明
int[] a = {5,1,3,0,1,4,-1};
int L = a.length;
//首先确保前两个元素是升序的
if(a[1]<a[0])
{
int tmp=a[0];
a[0]=a[1];
a[1]=tmp;
}
//其次进行插入排序
for(int i=2;i<L;i++)
{
//如果待插入的数小于或等于已排序的表头
if(a[i]<=a[0])
{
int tmp=a[i];
for(int j=i;j>0;j--)
{
a[j]=a[j-1];
}
a[0]=tmp;
}
//如果待插入的数大于或等于已排序的表尾
else if(a[i]>=a[i-1])
continue;
//如果待插入的数介于已排序的表中某两个数中间
else
{
for(int k=0;k<i-1;k++)
{
if(a[i]>=a[k]&&a[i]<=a[k+1])
{
int tmp1=a[i];
for(int m=i;m>k+1;m--)
{
a[m]=a[m-1];
}
a[k+1]=tmp1;
}
}
}
}
for(int element:a)
System.out.println(element+" ");
}
}
标签:
原文地址:http://my.oschina.net/zzw922cn/blog/471013