选择排序

示意图

选择排序示意图

实现

function selectionSort(arr) {
  const len = arr.length
  for (let i = 0; i < len - 1; i++) {
    let min = i
    for (let j = i + 1; j < len; j++) {
      if (arr[min] > arr[j]) {
        min = j
      }
    }
    if (min !== i) {
      let temp = arr[i]
      arr[i] = arr[min]
      arr[min] = temp
    }
  }
  return arr
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

分析

  • 时间复杂度上表现最稳定的排序算法之一,因为无论什么数据进去都是O(n2)的时间复杂度
  • 数据规模越小越好

Reference