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

JS冒泡排序

想必大家都多多少少了解过一点排序,让我为大家介绍一下冒泡排序吧!
假设我们现在有一个数组[2,4,3,5,1]
我们来分析一下:
1.一共需要的趟数 我们用外层for循环
5个数据我们一共需要走4躺
长度就是 数组长度 减去 1 arr.length-1
2.每一趟交换次数 我们 用里层for循环
第一趟 交换 4次
第二趟 交换 3次
第三趟 交换 2次
第四趟 交换 1次
长度就是数组长度减去次数
但是我们次数是从0次开始的 所以 最终 arr.length-1-i
3.交换2个变量

从小到大排序:

    const arr = [2, 4, 3, 5, 1]for (let i = 0; i < arr.length - 1; i++) {for (let j = 0; j < arr.length - i - 1; j++) {// 开始交换 但是前提 第一个数大于第二个数才交换if (arr[j] > arr[j + 1]) {// 交换let temp = arr[j]arr[j] = arr[j + 1]arr[j + 1] = temp}}}console.log(arr) //[1, 2, 3, 4, 5]

从大到小排序:
就是判断的地方变成了第二个数大于第一个数交换

    const arr = [2, 4, 3, 5, 1]for (let i = 0; i < arr.length - 1; i++) {for (let j = 0; j < arr.length - i - 1; j++) {// 开始交换 但是前提 第二个数大于第一个数才交换if (arr[j] < arr[j + 1]) {// 交换let temp = arr[j]arr[j] = arr[j + 1]arr[j + 1] = temp}}}console.log(arr) //[5, 4, 3, 2, 1]

感谢大家的阅读,如有不对地方,可以向我提出,感谢大家!

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

相关文章:

  • 面向遥感图像的道路区域提取及优化
  • mysql中NULL值
  • [c++] 意识需要转变的一个例子,全局变量的构造函数先于main执行
  • VSCode 配置自动生成头文件
  • 【大数据】Hudi 核心知识点详解(一)
  • windows上抓包出现大包未分片以及关闭tso方法
  • Leetcode 2454. 下一个更大元素 IV
  • 浏览器全屏按键同f11效果
  • CentOS 7.9 安装 k8s(详细教程)
  • 区块链的可拓展性研究【05】闪电网络
  • 如何部署Portainer容器管理工具+cpolar内网穿透实现公网访问管理界面
  • Linux——Samba文件共享服务配置
  • 自动驾驶右向辅助功能规范
  • ASF-YOLO开源 | SSFF融合+TPE编码+CPAM注意力,精度提升!
  • Mac 如何删除文件及文件夹?可以尝试使用终端进行删除
  • 最新Redis7持久化(权威出版)
  • Redis权限管理体系(一):客户端名及用户名
  • 【数据库设计和SQL基础语法】--查询数据--排序
  • 【sqli靶场】第六关和第七关通关思路
  • c语言快速排序(霍尔法、挖坑法、双指针法)图文详解
  • 【mysql】锁的类型有哪些呢?
  • uniapp 显示文件流图片
  • 多线程------ThreadLocal详解
  • 【C++】POCO学习总结(十六):随机数、密码、时间戳、日期和时间(格式化与解析)、时区、本地时间
  • 打补丁,生成.diff文件
  • 《LeetCode力扣练习》代码随想录——字符串(KMP算法学习补充——针对next数组构建的回退步骤进行解释)
  • 【CANoe】CAPL中on signal和on signal_update的区别
  • ArrayList集合的两个实例应用,有趣的洗牌算法与杨辉三角
  • Qt 剪贴板操作
  • python 学习笔记20 批量修改页眉页脚