算法思想:插入排序基于一个前提条件:局部有序,数列中有一个标记的成员,在这个成员的左边,左右的数据都已经按照顺序排列好了,插入算法要做的就是依次比较标记成员与他左边的数据的值,因为标记成员左边的数据已经有序,所以可以通过比较值来确定标记成员的插入位置。
效率:需要平均N*(N-1)/(2*2)次比较,时间O(N²)
class insertSort{
public static void main(String[] args){
insertionSort();
}
public static void insertionSort()
{
int out,in;
long a[]= {20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
long temp;
for(out=1;out<a.length;out++)
{
temp = a[out];
in=out;
while(in>0&&a[in-1]>=temp)
{
a[in]=a[in-1];
--in;
}
a[in]=temp;
}
for(int i=0;i<a.length;i++)
{
System.out.println(a[i]);
}
}
}