【java】插入排序及插入排序优化
交换法插入排序
在新数字插入过程中,不断与前面的数字交换,知道找到自己合适的位置。
public static void insertSort(int[] arr){
for(int i = 0; i < arr.length; i++){
for(int j = i; j>=0&&arr[j]<arr[j-1];j--){
swap(arr,j,j-1);
}
}
}
private static void swap(int[] arr,int i,int j){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
移动法插入排序
public static void insertSort(int[] arr){
for(int i = 1; i < arr.length; i++){
int currentNumber = arr[i];
int j = i-1;
for(; j >= 0 && currentNumber < arr[j]; j--){
arr[j+1] = arr[j];
}
arr[j+1] = currentNumber;
}
}