【C语言】js写一个冒泡顺序

用js写一个冒泡排序

 

当然可以。在JavaScript中,你可以使用递归的方式来实现冒泡排序算法。这是一个简单的示例:

 

                    

 

                    

 

                      function bubbleSort(arr) {

    let len = arr.length;

    if(len <= 1){

        return arr; // 如果数组只有一个元素或为空,直接返回

    }

    

    // 从第一个元素开始遍历到倒数第二个

    for(let i = 0; i < len - 1; i++){

        // 如果当前元素大于下一个元素,则交换它们的位置

        if(arr[i] > arr[i + 1]){

            [arr[i], arr[i + 1]] = [arr[i + 1], arr[i]]; // 使用数组解构赋值进行交换

        }

    }

 

    // 递归处理剩下的元素

    return bubbleSort(arr.slice(0, len - 1)).concat(arr[len - 1]);

}

 

// 测试冒泡排序

let numbers = [64, 34, 25, 12, 22, 11, 90];

console.log("Sorted array:", bubbleSort(numbers));

                    

 

                  

冒泡排序的时间复杂度是多少?

 

冒泡排序的时间复杂度主要取决于数组的原始状态。在最好的情况下,即输入数组已经是完全有序的情况下,冒泡排序只需要遍历一次数组,时间复杂度为 O(n),其中 n 是数组长度。

 

然而,在最坏的情况,即输入数组是逆序排列的,每一轮比较都需要交换 n-1 次,总共需要进行 n 轮这样的操作,因此时间复杂度是 O(n^2)。这是因为冒泡排序每次都会考虑相邻的两个元素并可能交换位置,所以随着数组长度的增长,其效率会急剧下降。

 

冒泡排序的空间复杂度是多少?

 

冒泡排序的空间复杂度是O(1),因为它只需要一个额外的常数空间用于存储临时变量,无论输入数组的大小如何变化,需要的额外空间都是固定的。冒泡排序算法通过交换相邻元素来逐步把较大的元素“浮”到数组的顶部,过程中不需要额外的数据结构来辅助整个过程。所以,其空间效率非常高,是一种就地排序算法。

2c1ad079204349548a1810849191abf5.jpg

51baa4ee1cfd4d44ac89f75a8a215d22.jpg 

 

上一篇:PostgreSQL加密连接SSL配置


下一篇:FPGA课程内容升级【纯逻辑和图像开发】-增加网络图像下发和采集项目,完善图像测试分析方法; 增加SD卡图像存储和读取图像通过HDMI显示内容; 增加手写图像叠加(OSD),实现水印logo; 增加监控多宫格图像拼接显示功能; 增加图像镜像平移旋转功能; 增加帧差运动跟踪;