【发布时间】:2022-01-13 06:23:45
【问题描述】:
我正在尝试在不使用排序功能的情况下对整数数组进行排序。我知道 Stack Overflow 上还有其他可用的解决方案。我想知道我的代码有什么问题。它执行升序排序,除了数组中的第一个数字。
let arr = [2,4,5,1,3,7];
let iterable = true;
let iterationCount = 0;
while(iterable) {
for(var i=iterationCount;i<=arr.length;i++) {
if (arr[i] > arr[i+1]) {
let temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
iterationCount++;
if (iterationCount == arr.length) {
iterable = false;
}
}
console.log(arr)
输出是 [2, 1, 3, 4, 5, 7] 而应该是 [1, 2, 3, 4, 5, 7]。
【问题讨论】:
-
我会告诉你你的例子:它从 2 开始,2 不大于 4,因此它保持在原位......然后你继续循环 for 循环。然后你增加迭代次数并从第二个值开始,因此 2 被忽略,你从 4 开始,让 2 总是在第一个位置
-
有什么建议可以解决吗?
标签: javascript sorting