0002 : 算法——选择排序

179 阅读1分钟

算法

从待排序的数据中寻找最小值,将其与数组最左边的值进行交换

时间复杂度

(n1)+(n1)+...+1=O(n2)(n−1)+(n−1)+...+1=O(n2)

js

const input = [4,2,15,2,5,6,21,67,2,3]
const sort = (arr) => {
    for (let i = 0; i < arr.length; i++) {
        let min = arr[i]
        let minIndex = i;
        for (let j = i+1; j < arr.length; j++) {
            if (min > arr[j]) {
                min = arr[j]
                minIndex = j
            }
        }
        arr[minIndex] = arr[i]
        arr[i] = min
    }
    return arr
}
console.log(sort(input))