JavaScript 实现冒泡排序228


什么是冒泡排序?冒泡排序是一种简单的排序算法,它通过反复遍历数组,将相邻元素进行比较和交换,从而将最大的元素逐步“冒泡”到数组的末尾。

JavaScript 中的冒泡排序以下是用 JavaScript 实现的冒泡排序算法:
```javascript
function bubbleSort(arr) {
let swapped;
do {
swapped = false;
for (let i = 0; i < - 1; i++) {
if (arr[i] > arr[i + 1]) {
const temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
swapped = true;
}
}
} while (swapped);
return arr;
}
```

算法描述:1. 初始化一个布尔变量 `swapped`,用于记录本次遍历是否有元素交换。
2. 进入一个 `do-while` 循环,不断遍历数组,直到 `swapped` 为 `false`。
3. 在外层循环中,逐个比较相邻元素,如果前一个元素大于后一个元素,则交换这两个元素,并设置 `swapped` 为 `true`,表示本次遍历中有元素交换。
4. 当外层循环结束时,如果 `swapped` 为 `true`,则表明数组中还有未排序的元素,需要继续进行下一轮遍历。
5. 重复步骤 2-4,直到 `swapped` 一直为 `false`,此时数组已完全排序。
6. 返回排序后的数组。

算法复杂度:冒泡排序的时间复杂度为 O(n²),其中 n 为数组的长度。这是因为算法需要遍历整个数组,并且每次遍历都要进行 n-1 次比较。

改进:为了提高冒泡排序的效率,可以应用以下优化:
* 提前终止循环:如果在某一轮遍历中没有发生元素交换,则表明数组已经排序完毕,可以提前终止循环。
* 优化比较:在每次比较时,可以先判断两个元素是否相等,如果相等则无需交换。
* 使用其他排序算法:对于较大的数组,可以考虑使用更高效的排序算法,如快速排序或归并排序。

示例:```javascript
const numbers = [5, 3, 1, 2, 4];
const sortedNumbers = bubbleSort(numbers);
(sortedNumbers); // [1, 2, 3, 4, 5]
```

2025-01-19


上一篇:如何通过JavaScript获取iframe

下一篇:网页制作中的 JavaScript