在 javascript 中的快速排序实现中交换元素
Swap elements in a quicksort implementation in javascript
我在JavaScript中实现了一个快速排序算法。它根据元素是大于还是小于枢轴将元素推送到其他数组。它看起来像这样。
function quickSort(array){
if (array.length <= 1) return array;
var left = [];
var right = [];
var equal = [];
var pivot = (array.length / 2) | 0;
for(var i = 0; i < array.length; i++) {
if (array[i] > array[pivot]) {
right.push(array[i]);
} else if (array[i] < array[pivot]) {
left.push(array[i]);
} else {
equal.push(array[i]);
}
}
return quickSort(left).concat(equal, quickSort(right));
}
quickSort([3,46,78,90,48,32,13,6,45,87,32,56,45]);
但是有没有办法只交换数组中的元素,而不是将元素推送到其他数组中?
如评论中所述,来自 https://www.nczonline.net/blog/2012/11/27/computer-science-in-javascript-quicksort/
只需创建一个以数组为参考的函数,以及 2 个位置。
function swap(items, firstIndex, secondIndex){
var temp = items[firstIndex];
items[firstIndex] = items[secondIndex];
items[secondIndex] = temp;
}
相关文章:
- 我可以通过JQuery将CSS类交换为一个特殊的元素集吗
- 拖动和交换列表元素
- 在两个选中的元素之间交换数据
- 交换两个 html 元素并保留其上的事件侦听器
- jQuery 交换元素内容给出类型 F 错误
- 用 jQuery 交换列表元素
- 如何使用 JQuery 将 H1 元素与另一个文档中的 H1 交换
- 在 JavaScript 中交换 8x8 矩阵中的元素
- 如何迭代html元素并交换它们的值
- 如何交换第一个和最后一个DOM元素
- Javascript将数组元素交换到另一个索引并删除旧索引
- 如何用JavaScript交换屏幕上的元素
- 在数组之间交换元素
- 如何在交换后将列表元素返回到其原始样式
- 使用延迟交换嵌套循环中的数组元素
- 如何在单击时将第一个列表元素与另一个li元素交换
- 用事件处理程序交换元素
- 离子表中的离子交换元素
- 在 javascript 中的快速排序实现中交换元素
- 当拖动&时交换元素(也有className)下降了