JavaScript实现冒泡排序

冒泡排序说明

对数组进行 冒泡排序 算是比较简单的一种数组排序方式,冒泡排序也是容易理解的一种排序算法了。

冒泡排序实现方式

数组中有 n 个数,比较每相邻两个数,如果前者大于后者,就把两个数交换位置;这样一来,第一轮就可以选出一个最大的数放在最后面;那么经过 n-1(数组的 length - 1) 轮,就完成了所有数的排序。

冒泡排序实现图片展示

let arr = [3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]

//因为冒泡排序算法是两两比较 所以外层比较次数应为数组长度-1
for (let i = 0; i < arr.length - 1; i++) {
    //  内循环的比较不必全部执行完  因为每一轮的内循环都会将最大的数排在最右
    //  所以后面的次数不用比较 所以内循环的次数是递减的 需要减去一个i
    for (let j = 0; j < arr.length - 1 - i; j++) {
        //这里是用前一个数和后一个数进行比较,如果前一个数比后一个大就执行if语句里的代码
        if (arr[j] > arr[j + 1]) {        
           //定义一个临时变量
           let temp
           //将比较前的一个数赋值给临时变量,此时arr[j]是空值       
           temp = arr[j]
           //将arr[j + 1]赋值给arr[j]  arr[j+1]也就是两个数比较时的后一个数   
           arr[j] = arr[j + 1]
           //最后临时变量赋值给arr[j + 1] 就让本次换位执行完
           arr[j + 1] = temp
        }
    }
}
console.log(arr)

总结

外层 for 循环控制循环次数
内层 for 循环进行两数交换,找每次的最大数,排到最后
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值