【发布时间】:2018-10-29 14:49:27
【问题描述】:
这是 javascript 中的冒泡排序算法(为简洁起见,删除了 swap 函数)
const bubbleSort = (arr, iter) => {
for (let i = 0; i < arr.length - 1; i++) {
for (let j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
swap(arr, j, j + 1);
}
}
}
return arr;
};
第二个参数iter 表示迭代。我希望此方法在 iter 迭代次数后返回数组。例如,考虑这个数组
array = [3, 5, 8, 4, 1, 9, -2]
After iteration 1: array = [3, 5, 4, 1, 8, -2, 9]
After iteration 2: array = [3, 4, 1, 5, -2, 8, 9]
.
.
After iteration 5: array = [1, -2, 3, 4, 5, 8, 9]
After iteration 6: array = [-2, 1, 3, 4, 5, 8, 9]
所以基本上如果我调用bubblesort(array, 5),它应该返回 [1, -2, 3, 4, 5, 8, 9]
【问题讨论】:
-
如果我做对了,在
i == iterbreak循环? -
您的代码不正确。
-
@PM77-1 嗯,你能说得更具体点吗?冒泡排序代码是我从 wiki 中提取的经典代码。
-
你的内部循环不依赖于
i。 -
@PM77-1 谢谢,已修复。
标签: javascript arrays printing iteration bubble-sort