Skip to content

Latest commit

 

History

History
37 lines (36 loc) · 776 Bytes

插入排序.md

File metadata and controls

37 lines (36 loc) · 776 Bytes

插入排序

依次遍历数组,在之前排好的数组中找到适合的位置插进去

代码

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)