选择排序
实现思路
- 找到数组中的最小值,选中它并将其放置在第一位
- 继续找到第二小的值,选中它并将其放置在第二位
- 以此类推,执行 n - 1 轮
代码实现
const selectionSort = arr => {
for (let i = 0; i < arr.length - 1; i++) {
let minIndex = i
for (let j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j
}
}
if (i !== minIndex) {
const temp = arr[i]
arr[i] = arr[minIndex]
arr[minIndex] = temp
}
}
return arr
}
selectionSort([6,5,4,3,2,1])
复杂度分析
- 时间复杂度:O(n^2),两个嵌套循环
- 空间复杂度:O(1)