冒泡排序

// 冒泡排序
const bubbleSort = (array) => {
  if (!array || array.length < 2) return
  let len = array.length
  // for (let i = 0; i < len; i++) {
  //   for (let j = 0; j < len - i - 1; j++) {
  for (let i = len - 1; i > 0; i--) {
    for (let j = 0; j < i; j++) {
      if (array[j] > array[j + 1]) {
        let temp = array[j]
        array[j] = array[j + 1]
        array[j + 1] = temp
      }
    }
  }
  return array
}

插入排序

// 插入排序
const insertion = (array) => {
  if (!array || array.length < 2) return array
  // for (let i = 1; i < array.length; i++) {
  //   for (let j = i - 1; j >= 0 && array[j] > array[j + 1]; j--) {
  //     let temp = array[j]
  //     array[j] = array[j + 1]
  //     array[j + 1] = temp
  //   }
  // }
  for (let i = 1; i < array.length; i++) {
    let value = array[i]
    let j = i - 1
    for (; j >= 0; j--) {
      if (array[j] > value) {
        array[j + 1] = array[j]
      } else {
        break
      }
    }
    array[j + 1] = value
  }
  return array
}

选择排序

// 选择排序
const selection = (array) => {
  if (!array || array.length < 2) return array
  for (let i = 0; i < array.length; i++) {
    let minIndex = i
    for (let j = i + 1; j < array.length; j++) {
      minIndex = array[j] < array[minIndex] ? j : minIndex
    }
    let temp = array[i]
    array[i] = array[minIndex]
    array[minIndex] = temp
  }
  return array
}