前端基础算法——选择排序
选择排序,运行时间: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
}