当前位置: 首页 > news >正文

【C语言】。末尼

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

917430cca1c34edcac904488d9eb9cdd.jpg

e3de45c3eccd4cc2b2615c83b0e29b62.png 

 

http://www.lryc.cn/news/481644.html

相关文章:

  • 【鉴权】深入解析 Token:身份认证的核心技术
  • FastReport将停止 .NET Framework 上的 WebReport 更新
  • 面试:TCP、UDP如何解决丢包问题
  • 在Ubuntu下安装RabbitMQ、添加一个新的登录用户并设置密码
  • HTTPS通信和TCP通信有什么不一样
  • Kafka 的一些问题,夺命15连问
  • unity3d————延时函数
  • 计算机学生自我提升方法——善用搜索引擎
  • 游戏引擎学习第一天
  • uni-app view循环绑定click和 v-if
  • Redis 高并发分布式锁实战
  • 关于elementui el-radio 赋值问题
  • 2024-11-6----Android 11(全志713m)----- 关于添加 Selinux 权限
  • shodan5(泷羽sec)
  • 【Linux】Ansible集中化运维工具(详解)安装、常用模块、playbook脚本
  • 惠州石湾DELL T130服务器黄灯不开机案例
  • ⭐SmartControl: Enhancing ControlNet for Handling Rough Visual Conditions
  • wordpress站外调用指定ID分类下的推荐内容
  • Ente: 我们的 Monorepo 经验
  • Kafka java 配置
  • 网络安全现状:复杂的威胁形势导致压力水平飙升
  • 【机器学习】强化学习(1)——强化学习原理浅析(区分强化学习、监督学习和启发式算法)
  • 【SoC设计指南 基于Arm Cortex-M】学习笔记1——AMBA
  • flutter鸿蒙模拟器 Win环境调试报错问题记录(暂未解决)
  • 详解Rust标准库:HashSet
  • 记录学习react的一些内容
  • json绘制热力图
  • linux 下查看程序启动的目录
  • 书生浦语第四期基础岛L1G2000-玩转书生「多模态对话」与「AI搜索」产品
  • 保护Kubernetes免受威胁:容器安全的有效实践