直接插入排序
把一个新的元素插入已排好序的数组形成一个新的已排好序的数组 从第一个元素开始,取下一个元素比较后实现排序,形成新的数组, 再取第三个元素与该数组比较, 比较时从该数组的最后一位开始比较, 若新元素比与其比较的元素小,则将该比较的元素后移以为, 直到新元素比该数组左边找到其应该插入的位置。(转自七月回来继续发博客)
平均时间复杂度:O(n^2)
public static void insertionSort(int[] arr) {
// 从第二个数开始,第一个数默认有序
for (int i = 1; i < arr.length; i++) {
// 记录要插入的数据
int temp = arr[i];
int j = i;
// 从有序记录的右边开始比较,找到比他小的,并插入
while (j > 0 && temp < arr[j - 1]) {
arr[j] = arr[j - 1];
j--;
}
arr[j] = temp;
}
}