冒泡排序的作用是将一个无序的数组变成有序的数组。它可以用来解决排序问题,例如从小到大排序或从大到小排序。由于冒泡排序的实现非常简单,所以它适用于小型数组的排序,但对于大型数组,它的效率较低,不如快速排序等高效的排序算法。冒泡排序的时间复杂度为O(n^2)。
function bubbleSort(arr) {
let len = arr.length; //先获取到数组的长度
//循环数组
for (let i = 0; i < len - 1; i++) {
//内部循环每次都把当前最大的放到最后了在从0开始比较
for (let j = 0; j < len - 1 - i; j++) {
//再把剩下的继续遍历比较
if (arr[j] > arr[j + 1]) {
//如果arr[j]大于了arr[j+1],则交换位置,把大的交换到后面
//先用空容器放一下
let temp = arr[j];
//在进行交换
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
// example usage
let arr = [64, 34, 25, 12, 22, 11, 90];
let sortedArr = bubbleSort(arr);
console.log(sortedArr); // [11, 12, 22, 25, 34, 64, 90]
冒泡排序在以下情况可以用到:
- 数组元素较少的情况下,可以使用冒泡排序。
- 数组元素基本有序的情况下,可以使用冒泡排序。
- 作为基础排序算法,用于教学和理解其他排序算法的原理。