选择排序
在冒泡排序的基础上进行优化后的选择排序法,选择排序法在所有的排序算法中是最稳定的一种算法。
选择排序是在数组中,选择两个符合条件的项并进行互换位置,以此来达到重新排序的额目的。
算法模式:双指针-快慢指针
时间复杂度:O(n²)
思路:向后比较
- 防御性:长度小于 1 直接返回
- 上一位:外层 for 从 0 递增
- 下一位:内层 for 从 i+1 递增
- 比较
arr[j] < arr[i]
- temp 交换排序
const selectSort = array => {
if (arr.length <= 1) return arr
for (let i = 0; i < array.length; i++) {
for (let j = i + 1; j < array.length; j++) {
// 比大小
if (arr[j] < arr[i]) {
// 交换位置
let temp = arr[j]
arr[j] = arr[i]
arr[i] = temp
}
}
}
return arr
}
const arr = [5, 4, 3, 2, 1]
console.log(selectSort(arr))