插入排序的要点在于,找到一个key(开始位是数组的第二个值,arry[1]),对比,如果将要插入的值比key小,插入到左边,反之,插入到右边。可以想象一下扑克牌排序,每次抓到一张新扑克牌,如何插入到手里原有的牌的哪个位置。
package javaBasic;
import java.util.Arrays;
public class InsertSortTest {
public static void main(String[] args){
int [] array = {49,38,65,97,76,13,27};
InsertSortTest is= new InsertSortTest(array);
is.sort();
}
private int arr[] = null;
public InsertSortTest(int arr[]){
this.arr = arr;
}
public void sort(){
int key,i,j;
for( i =1 ; i < arr.length; i++){
key = arr[i];
j = i - 1;
while (j >=0 && arr[j] > key){
arr[j+1] = arr[j];
j--;
}
arr[j+1] = key;
System.out.println(Arrays.toString(arr));
}
System.out.println("Result is "+Arrays.toString(arr));
}
}