冒泡排序是一种简单的排序算法。它重复地遍历待排序的列表,比较相邻的元素并交换位置,如果它们的顺序错误。这个过程会重复进行,直到整个列表排序完成。下面是用 JavaScript 实现的冒泡排序算法:
function bubbleSort(arr) {
let n = arr.length;
let swapped;
do {
swapped = false;
for (let i = 0; i < n - 1; i++) {
if (arr[i] > arr[i + 1]) {
// 交换 arr[i] 和 arr[i + 1]
let temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
swapped = true;
}
}
// 每次遍历后,最大的元素会移动到数组末尾
n--;
} while (swapped);
return arr;
}
// 示例使用
const array = [64, 34, 25, 12, 22, 11, 90];
console.log("未排序数组: " + array);
const sortedArray = bubbleSort(array);
console.log("排序后数组: " + sortedArray);
解释:
- 函数定义:
bubbleSort(arr)
接受一个数组作为参数。 - 变量初始化:
n
:数组的长度。swapped
:布尔变量,用于检查是否进行过交换。
- 外层循环:使用
do-while
循环,以确保至少执行一次排序过程。swapped
设置为false
,表示当前没有交换。
- 内层循环:遍历数组,比较相邻元素:
- 如果
arr[i]
大于arr[i + 1]
,则交换它们的位置,并将swapped
设置为true
。
- 如果
- 减少范围:在每次遍历后,最大的元素会移动到数组的末尾,因此可以减少下一次遍历的范围(
n--
)。 - 返回结果:返回排序后的数组。
示例输出:
未排序数组: 64,34,25,12,22,11,90
排序后数组: 11,12,22,25,34,64,90
这个算法的时间复杂度为 (O(n^2)),适用于小规模数据的排序。
前端工程师、程序员
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?