依次遍历数组,在之前排好的数组中找到适合的位置插进去
function insertSort(arr) {
for (var i = 0; i < arr.length; i++) {
for (var j = i - 1; j >= 0; j--) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = temp
}
}
}
return arr
}
insertSort([4, 2, 3 ,1 ,5])
function insertSort(arr, fn) {
for (var i = 0; i < arr.length; i++) {
var val = arr[i]
for (var j = i - 1; j >= 0; j--) {
var order = fn(arr[j], val)
if (order > 0) {
arr[j + 1] = arr[j]
} else {
break
}
}
arr[j + 1] = val
}
return arr
}
insertSort([4, 2, 3 ,1 ,5], (a, b) => b - a)