冒泡排序通过相邻元素比较交换使最大值逐轮上浮,最多n-1轮,可提前终止;快速排序采用分治法,选基准划分数组后递归排序左右子数组,核心为双指针分区。

冒泡排序和快速排序是两种经典排序算法,JavaScript 实现起来都不难,关键在于理解逻辑和边界处理。
每次遍历把当前未排序部分的最大值“冒泡”到末尾,重复直到全部有序。
function bubbleSort(arr) {
const a = [...arr]; // 不修改原数组
const n = a.length;
for (let i = 0; i < n - 1; i++) {
let swapped = false;
for (let j = 0; j < n - 1 - i; j++) {
if (a[j] > a[j + 1]) {
[a[j], a[j + 1]] = [a[j + 1], a[j]]; // 解构交换
swapped = true;
}
}
if (!swapped) break; // 提前结束
}
return a;
}选一个基准(pivot),把数组分为“小于基准”“大于等于基准”两部分,再递归排序这两部分。
function quickSort(arr) {
if (arr.length <= 1) return arr;
const pivot = arr[Math.floor(arr.length / 2)];
const left = [], right = [], equal = [];
<p>for (const x of arr) {
if (x < pivot) left.push(x);
else if (x > pivot) right.push(x);
else equal.push(x);
}</p><p>return [...quickSort(left), ...equal, ...quickSort(right)];
}这是“简洁版”,易懂但额外用了空间。进阶可写原地分区(Lomuto 或 Hoare 分区方案),节省内存。
立即学习“Java免费学习笔记(深入)”;
基本上就这些。写出来不复杂,但细节(比如循环边界、递归出口、是否稳定)容易忽略。
以上就是如何用JavaScript实现一个简单的排序算法_冒泡和快速排序如何编写?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号