【发布时间】:2016-11-29 12:28:12
【问题描述】:
我有这样的数组 值 = [250, 200, 300, 150, 300]
我使用这个代码。
for (var j = 0; j < value.length - 1; j += 1)
{
if (value[j] > value[j + 1])
{
var temp = value[j + 1];
value[j + 1] = value[j];
value[j] = temp;
}
}
但是,它不起作用。结果 value = [200, 250, 150, 300, 300]
我想在不使用内置函数的情况下实现这一点。
【问题讨论】:
-
只有一个循环,你不会得到一个排序数组。
-
单循环排序是不可能的。您可以使用内部排序方法developer.mozilla.org/en/docs/Web/JavaScript/Reference/… 或使用排序算法khan4019.github.io/front-end-Interview-Questions/sort.html
-
你为什么不直接做
value.sort() -
看看this answer in SO,它有很多指向不同排序算法的链接,并用伪代码进行了恰当的解释。
-
@adeneo 因为老师希望他们以这种方式实现它....
标签: javascript arrays sorting bubble-sort