谁能看出这种选择排序的bug在哪里,怎么改进可以正确输出
发布于 5 年前 作者 qxl1231 3184 次浏览 来自 问答
//另一种选择排序算法
const find = (arr) => {
    let index = 0;
    let small = arr[0];
    for (let i = 0; i < arr.length; i++) {
        if (arr[i] < small) {
            small = arr[i];
            index = i;
        }
    }
    console.log(index);
    return index;
};

const sort = (arr2) => {
    let newArr = [];
    for (let i = 0; i < arr2.length; i++) {
        let index = find(arr2);
        let popArr = arr2.splice(index, 1);
        newArr.push(popArr[0]);
    }
    return newArr;
};
console.log(sort(values));

4 回复

arr2长度一直在变小,不会有你预期的循环次数

@Liaozzzzzz 我当然知道啦…怎么优化呢?

@qxl1231 从后向前循环~

@qxl1231 循环体最后加上"i–"

回到顶部