如何在冒泡排序中第n次迭代后获取数组?
How to get the array after nth iteration in bubble sort?
这是 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
次迭代后 return 数组。例如,考虑这个数组
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)
,它应该 return [1, -2, 3, 4, 5, 8, 9]
如果你想要第 N 次迭代,只需 运行 整个事情 N 次,然后 return 结果?
var array = [3, 5, 8, 4, 1, 9, -2]
const bubbleSort = (arr, iter) => {
for (var n = 0; n < iter; n++) {
for (var i = 0; i < arr.length; i++) {
for (var j = 1; j < arr.length; j++) {
if (arr[j - 1] > arr[j]) {
swap(arr, j - 1, j);
}
}
}
}
return arr;
};
bubbleSort(array,5)
您可以在内部使用 for
循环和 forEach
循环来交换元素。
let array = [3, 5, 8, 4, 1, 9, -2]
function bubblesort(arr, n) {
for (let x = 0; x < n; x++) {
arr.forEach((e, i) => {
if (arr[i + 1] < e) {
arr[i] = arr[i + 1]
arr[i + 1] = e
}
})
}
return arr
}
console.log(bubblesort(array, 5))
这是 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
次迭代后 return 数组。例如,考虑这个数组
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)
,它应该 return [1, -2, 3, 4, 5, 8, 9]
如果你想要第 N 次迭代,只需 运行 整个事情 N 次,然后 return 结果?
var array = [3, 5, 8, 4, 1, 9, -2]
const bubbleSort = (arr, iter) => {
for (var n = 0; n < iter; n++) {
for (var i = 0; i < arr.length; i++) {
for (var j = 1; j < arr.length; j++) {
if (arr[j - 1] > arr[j]) {
swap(arr, j - 1, j);
}
}
}
}
return arr;
};
bubbleSort(array,5)
您可以在内部使用 for
循环和 forEach
循环来交换元素。
let array = [3, 5, 8, 4, 1, 9, -2]
function bubblesort(arr, n) {
for (let x = 0; x < n; x++) {
arr.forEach((e, i) => {
if (arr[i + 1] < e) {
arr[i] = arr[i + 1]
arr[i + 1] = e
}
})
}
return arr
}
console.log(bubblesort(array, 5))