冒泡排序解读

冒泡排序

说起冒泡排序大家肯定都不陌生,今天就带大家来解读下它究竟是怎样实现的,它的原理又是什么以及怎样去充分理解它。
冒泡排序的作用简单明了就是排序,下面我们来手写一个冒泡排序实现数组从小到大排列。
写之前我们得先想想怎么实现?
1.比较前后项的值,大于则调换两者位置
2.比较次数的考虑 怎样比较才能让数组里的所有值都进行了比较
3.怎么过滤掉不必要的比较

我们可以这样想 我们分为两次循环嵌套实现
第一次循环的目的是排布好的次数 比如有5个值 那么我们只需要排布好4个值那么就排布好了,最后一个值已经是正确位置了。
第二次循环的目的是每一次循环都能排布好本次需要的最大值放到对应的位置 举个例子,第一次比较出最大值输送至数组最后一位,需要执行length-1 因为要比较数组内所有值。 第二次比较输出第二大值至数组倒数第二位,那么它需要比较的是length-2次,因为比较要除掉之前的最大值,即数组最后一位不比较,以此类推,最后就能得到我们想要的从小到大排序。

那么我们可以这样写:

在这里插入图片描述

我们去看看后台输出的结果是不是我们想要的 1 4 6 8

在这里插入图片描述

果不其然成功了
现在让我们来解读下究竟是怎样实现的

数组 [6,4,8,1]
第一次外部循环 即 i 为0是 数组的改变我们来看看
执行次数length-i 即为 4-1 = 3次 j的值为 0 1 2
第一次比较0 1 调换位置
第二次比较 1 2 不变
第三次比较 2 3 调换位置
得到该数组最大值为 8 放置于数组最后一位

ij数组
004 6 8 1
014 6 8 1
024 6 1 8

第二次外部循环 即i 为1
就不详细解释了,和上面一样
得到第二大值为 6 放置为数组倒数第二位

ij数组
104 6 1 8
114 1 6 8

第二次外部循环 即i 为2
就不详细解释了,和上面一样
得到第二大值为 4 放置为数组倒数第三位

ij数组
201 4 6 8

比较四位数组我们排布好3位正确的值,那么现在得到的 1 4 6 8 就是我们想要的正确答案

你学废了吗?哈哈~
是不是so easy?
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值