冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历待排序的列表,比较相邻的元素并根据需要交换它们。这个过程重复进行,直到列表完全有序。以下是如何用JavaScript实现冒泡排序的详细步骤和代码示例:
冒泡排序的基本思想
从列表的第一个元素开始,依次比较相邻的两个元素。
如果前一个元素大于后一个元素,则交换这两个元素。
每次遍历后,最大的元素会“冒泡”到列表的末尾。
对列表进行多次遍历,直到没有任何元素需要交换为止。
function bubbleSort(arr) {
let len = arr.length;
let swapped;
// 遍历数组
for (let i = 0; i < len - 1; i++) {
swapped = false;
// 内层循环遍历数组,进行比较和交换
for (let j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
// 交换元素
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
swapped = true; // 标记发生了交换
}
}
// 如果在一次遍历中没有发生交换,说明数组已经有序,可以提前结束
if (!swapped) {
break;
}
}
return arr;
}
// 示例使用
const array = [64, 34, 25, 12, 22, 11, 90];
console.log("Original array:", array);
const sortedArray = bubbleSort(array);
console.log("Sorted array:", sortedArray);
冒泡排序虽然简单易懂,但它的时间复杂度是O(n^2),对大数据集的排序效率较低。在实际应用中,通常会选择更高效的排序算法(如快速排序或归并排序)。