插入排序:
将第一个元素与第二个元素比较, 谁小谁插入到第一个位置, 再找第三个位置的,与第一个位置与第二个位置比较, 比较它与第一个第二个位置元素的大小, 依次类推
特点: 插入排序所需的时间, 取决于元素的初始顺序
/*
*@program: algStudy
*@description: 插入排序
*@author: chensy
*@create: 2019-07-14 22:49
*/
public class Insertion
{
public static void main(String[] args) {
int[] arr = doArrayTool.create(10);
arr = doArrayTool.reverse(arr);
doArrayTool.show(arr);
System.out.println();
}
//交换位置的写法
public static void sort(int[] arr){
for (int i = 1; i < arr.length; i++) {
for (int j = i; j > 0 && arr[j] < arr[j -1] ; j--) {
doArrayTool.swap(arr, j, j-1);
}
}
}
//较大值右移的写法
public static void sort2(int[] arr){
for (int i = 1; i < arr.length; i++) {
int currentValue = arr[i];
int j;
for (j = i - 1; j >= 0 ; j--) {
if(currentValue < arr[j]){
arr[j + 1] = arr[j];
}
if(currentValue > arr[j]){
break;
}
}
arr[j + 1] = currentValue;
}
}
}