插入排序的思想是:将数据分为有序区和无序区,每次从无序区中取出一个元素,然后和有序区从后往前挨个比较,比该元素大的往后移。直到找到比该元素小的元素。那么这个元素就插入到他的后面就行。
function insertSort(arr) {
for (let i = 1; i < arr.length; i++) {
// 取出待插入的元素
let insertValue = arr[i];
let j = i - 1;
for (; (j >= 0) && (insertValue < arr[j]); j--) {
arr[j + 1] = arr[j];
}
arr[j + 1] = insertValue;
}
}
时间复杂度O(n^2) 空间复杂度O(1)