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个变量

从小到大排序:

javascript 复制代码
    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]

从大到小排序:

就是判断的地方变成了第二个数大于第一个数交换

javascript 复制代码
    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]

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

相关推荐
小O的算法实验室7 分钟前
2023年CIE SCI2区TOP,ACO+PSO+A*:一种用于 AUV 多任务路径规划的双层混合算法,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
Ro Jace10 分钟前
A Real-Time Cross Correlator for Neurophysiological Research
人工智能·python·算法
2501_9403152621 分钟前
【无标题】(leetcode933)最近的请求次数
java·前端·javascript
Sheep Shaun24 分钟前
深入理解红黑树:从概念到完整C++实现详解
java·开发语言·数据结构·c++·b树·算法
Dave.B25 分钟前
:vtkBooleanOperationPolyDataFilter 布尔运算全解析
算法·vtk
易晨 微盛·企微管家30 分钟前
2025企业微信AI智能机器人实战指南:3步实现客服自动化
大数据·人工智能·算法
jiaguangqingpanda31 分钟前
Day26-20260122
java·算法·排序算法
Ahtacca32 分钟前
拒绝重复造轮子:利用自定义注解封装POI,实现Java通用Excel解析
java·javascript·vue·excel
入门级前端开发34 分钟前
vue集成xlsl实现前端表格导入导出
前端·javascript·vue.js
secondyoung37 分钟前
队列原理与实现全解析
c语言·数据库·mysql·算法·队列