# 选择排序

  • 时间复杂度 O(n²)
  • 空间复杂度 O(1)
  • 不稳定

思想

双重循环遍历数组,每一轮比较找到最小元素下标,将其交换到首位

function selectionSort(arr) {
  let minIndex;
  for (let i = 0; i < arr.length; ++i) {
    minIndex = i;
    for (let j = i + 1; j < arr.length; ++j) {
      if (arr[minIndex] > arr[j]) {
        minIndex = j;
      }
    }
    let t = arr[minIndex];
    arr[minIndex] = arr[i];
    arr[i] = t;
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14