Skip to main content

前端基础算法——选择排序

· One min read
Harry
Front End Engineer

选择排序,运行时间: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
}

Selection Sort