【发布时间】:2011-02-21 22:50:47
【问题描述】:
有一个与此类似的冒泡排序例程。我需要通过在对数组进行排序或数组已经排序时停止循环来提高效率。
function sortNumbers(listbox) {
var x, y, holder;
// The Bubble Sort method.
for(x = 0; x < ranarray.length; x++) {
for(y = 0; y < (ranarray.length-1); y++) {
if(ranarray[y] > ranarray[y+1]) {
holder = ranarray[y+1];
ranarray[y+1] = ranarray[y];
ranarray[y] = holder;
}
}
}
【问题讨论】:
-
如果这不是应该用“作业”标签标记的东西,那么没有太多理由编写这样的代码。
-
有人赞成这个?真的吗?
-
为什么不使用更好的算法呢?即使优化的 BubbleSort 仍然是 O(n*n)。是练习还是实际使用?
-
也许他只是为了学习排序算法而学习。在这种情况下,通常从一个非常简单的算法开始,比如冒泡排序。
-
ranarray.length-1应该是ranarray.length-x我相信,因为您应该在每次外部迭代后少迭代 1 个项目。