插入排序(InsertionSorting)的基本思想是:把n個待排序的元素看成為一個有序表和一個無序表,開始有序表只包含一個元素,無序表中包含有n-1個元素,排序過程中每次從無序表中取出第一個元素,把它的排序碼依次與有序表元素的排序碼進行比較,將它插入到有序表中的適當位置,使之成為新的有序表。
1 package Sorting; 2 3 public class InsertionSorting { 4 // 插入排序 5 public static void main(String[] args) { 6 // TODO Auto-generated method stub 7 int arr[]={12,5,17,16,19,23,14,52,13}; 8 9 for(int i=1;i<arr.length;i++){ 10 int insertVal=arr[i]; 11 //insertVal准備和前一個數比較 12 13 int index=i-1; 14 while(index>=0 && insertVal<arr[index]){ 15 //將arr[index]向后移動一位 16 arr[index+1]=arr[index]; 17 index--; 18 } 19 //將insertVal的值插入適當位置 20 arr[index+1]=insertVal; 21 } 22 //輸出結果 23 for(int e:arr){ 24 System.out.print(e+" "); 25 } 26 27 } 28 29 }