import java.util.Arrays;
/**
* 插入排序
* 描述:初始将待排数组第一个元素列为已排序数组,下一个元素往已排序数组
* 插入到相应位置,形成新的已排序数组。循环以上直到完全排序。
*/
public class InsertSort {
public static void main(String[] args){
// 待排序数组
int[] arr = {1, 4, 2, 5, 3, 8};
// 排序结果
int[] result = insertSort(arr);
System.out.print(Arrays.toString(result));
}
/**
* 插入排序
*/
public static int[] insertSort(int[] arr){
for(int i = 1; i < arr.length; i++){
int insertValue = arr[i]; // 待插入值
int idx = i - 1;
while(idx >= 0 && insertValue < arr[idx]){ // 待插入值小于当前索引对应值,则当前索引对应值后移
arr[idx + 1] = arr[idx];
idx--;
}
arr[idx + 1] = insertValue; // 插入
}
return arr;
}
}