冒泡排序作为一种基础排序算法,其核心思想是:反复比较相邻元素,将较大(或较小)的元素逐步交换至数组末尾,直至数组有序。
以下是使用 JavaScript 实现的冒泡排序算法代码示例:
function bubbleSort(arr) {
const len = arr.length;
for (let i = 0; i < len - 1; i++) {
for (let j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
// 交换 arr[j] 和 arr[j + 1]
const temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
// 示例用法
const unsortedArray = [5, 2, 4, 6, 1, 3];
const sortedArray = bubbleSort(unsortedArray);
console.log(sortedArray); // 输出: [1, 2, 3, 4, 5, 6]
代码解析:
- 外层循环
i
控制排序趟数,每一趟都会将当前最大(或最小)的元素放置到数组末尾。 - 内层循环
j
负责比较相邻元素,并根据排序规则进行交换。 len - 1 - i
优化: 由于每趟排序后,数组末尾的i
个元素已经有序,因此内层循环无需遍历已排序的部分。
需要注意的是,冒泡排序的时间复杂度为 O(n^2),在处理大规模数据时效率较低,实际应用中通常会选择更高效的排序算法。
暂无评论