折口木木

一切伟大的思想和行动都有一个微不足道的开始

前端基础算法——选择排序

选择排序,运行时间:O(n^2)

// 找出数组中最小的数字
function findSmallest (arr) {
  let minValue = arr[0]
  let minIndex = 0

  for (let i in arr) {
    let item = arr[i]
    if (item >= minValue) { continue }
    minIndex = i
    minValue = item
  }

  return minIndex
}

// 对数字进行排序
function selectionSort (arr) {
  let len = arr.length
  let newArr = []
  for (let i = 0; i < len; i++) {
    let minIndex = findSmallest(arr)
    newArr.push(arr[minIndex])
    arr.splice(minIndex, 1)
  }

  return newArr
}
选择排序