思想: 将数组分为两部分,一部分有序,一部分无序。每次从无序中拿一个数,在有序数组找一个坑,把这个无序的数放入坑中。(这样会有一个,你占啦别人的坑,别人
怎么办呢?那么就要将插入坑中的地方的后面的数据都往后面移动,这样就不会出现问题)。其实每次拿出的无序的数有两个插入位置,要么是本身的位置,要么是
有序数的那部分中的某个位置
public class sort_insert {
public static void main(String[] args) {
int a[]={1,7,3,9,0,4,5,6};
int b[]=a;
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
System.out.println();
insert_sort(a);
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
System.out.println();
}
public static void insert_sort(int a[]){
int temp;
int j;
for(int i=1;i<a.length;i++){
j=i;
temp=a[i];
//两种循环实现
// int k=i;
// for( k=i-1;k>0&&temp<a[k];k--){
// a[k+1]=a[k];
// } // a[k]=temp;
while (j>0&&a[j-1]>temp){
a[j]=a[j-1];
j--;
}
a[j]=temp;
}
}
}