CNode

谁能看出这种选择排序的bug在哪里,怎么改进可以正确输出

问答
Qqxl1231发布于7 年前最后回复7 年前4 回复4794 浏览0 收藏
//另一种选择排序算法
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)

L
Liaozzzzzz#1·7 年前

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

L
Liaozzzzzz#2·7 年前
Q
qxl1231#3·7 年前
引用 Liaozzzzzzarr2长度一直在变小,不会有你预期的循环次数

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

Z
zhengjun87#4·7 年前
引用 qxl1231@Liaozzzzzz 我当然知道啦..怎么优化呢?

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

参与回复
登录后即可参与回复。登录