冒泡排序是一种简单的排序算法。它重复地遍历待排序的列表,比较相邻的元素并交换位置,如果它们的顺序错误。这个过程会重复进行,直到整个列表排序完成。下面是用 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)),适用于小规模数据的排序。
    前端工程师、程序员

                
            
        
浙公网安备 33010602011771号