基本思想:每一个待排序的记录,按照其大小插入到前面已经排好序的子数组中,直至数组的全部记录都插入完成。
代码实现:
public static void insertSort(int [] arr){
for(int i =1 ; i < arr.length ; i++){
for(int j = i-1; j>=0 ; j--){
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
或者代码实现是:
static int i , j ;
public static void insertSort(int [] arr){
for(i = 1; i < arr.length ; i++){
if(arr[i-1] > arr[i]){
int temp = arr[i];
for(j = i-1 ; j >= 0 && arr[j] > temp ; j--){
arr[j+1] = arr[j];
}
arr[j+1] = temp;
}
}
}
测试代码:
public static void main(String[] args) {
int [] arr = {5,9,1,3,52,13,2,8,4};
insertSort(arr);
for(int i : arr){
System.out.println(i);
}
}