思想: 將數組分爲兩部分,一部分有序,一部分無序。每次從無序中拿一個數,在有序數組找一個坑,把這個無序的數放入坑中。(這樣會有一個,你佔啦別人的坑,別人數組
怎麼辦呢?那麼就要將插入坑中的地方的後面的數據都日後面移動,這樣就不會出現問題)。其實每次拿出的無序的數有兩個插入位置,要麼是自己的位置,要麼是code
有序數的那部分中的某個位置class
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--){sort
// a[k+1]=a[k];static
// } // a[k]=temp;移動
while (j>0&&a[j-1]>temp){ a[j]=a[j-1]; j--; } a[j]=temp; } }
}while