简单讲解一下冒泡排序的原理 及代码
来源:互联网 发布:学软件开发学校 编辑:程序博客网 时间:2024/05/18 03:16
说到冒泡 排序,其实原理很简单,
比如将
$arr = [1, 22, 11, 33, 42, 45];数组内的元素按升序排序
算法原理:将前后每两个数进行比较,较大的数往后排,一轮下来最大的数就排到最后去了。然后再进行第二轮比较,第二大的数也排到倒数第二了,以此类推:
第一轮比较:
第一次比较:1,12,11,33,48,45第一个数不大于第二个数,不调换位置
第二次比较:1,12,11,33,48,45第二个数大于第三个数,调换位置
第三次比较:1,11,12,33,48,45 第三个数不大于第四个数,不调换位置
第四次比较:1,11,12,33,48,45第四个数大于第五个数,调换位置
。。。。。以此类推
第六次比较:1,22, 11, 33,45, 48第五个数大于第六个数,调换位置
上面就进行完了第一轮比较将最大的一个数字排到了最后面。比较次数5次
第二轮比较:
跟第一轮比较一样,但我们可以发现,最后一个数字我们不需要比较,因为那是最大的数
比较次数4次
第三轮比较:
比较次数3次
。
。
。
。
第6轮比较:
比较次数1次
从上面的分析我们可以看出我们排6个数需要比较5轮,每一轮比较由5次递减到1次
代码:
$arr = [1, 22, 11, 33, 48, 45];$k = 0;//循环多少次$count = count($arr);//计算数组长度for ($i = 1; $i < $count; $i++) {//循环的次数 for ($j = 0; $j < $count - $i; $j++) {//循环的东西 $k++;//循环多少次 if ($arr[$j] > $arr[$j + 1]) { list($arr[$j], $arr[$j + 1]) = [$arr[$j + 1], $arr[$j]]; } echo $k; echo "<br>"; }}print_r($arr);
阅读全文
0 0
- 简单讲解一下冒泡排序的原理 及代码
- 直接排序和冒泡排序简单讲解(JAVA代码)
- 冒泡排序原理及代码实现
- 冒泡排序的原理及方法
- 冒泡排序、插入排序、选择排序的原理及比较
- 简单选择、冒泡、插入排序思想及Java实现代码
- 冒泡排序的例题讲解
- java冒泡排序及原理
- 冒泡排序原理及实现
- 冒泡排序原理及实现
- 简单排序Java实现(一):冒泡排序,选择排序,插入排序(原理及实现)
- 冒泡排序的原理
- 冒泡排序的原理
- 冒泡排序,选择排序的理解及代码实…
- 选择排序,冒泡排序及二分查找的代码实现
- 冒泡排序及简单优化
- 简单的冒泡排序
- 简单的冒泡排序
- 2030全球新出行产业报告:2.2万亿美元蛋糕将这样分
- 智能驾驶时代已经到来
- 2018年AI智商将达到多少?未来智能实验室启动第三次世界AI智商评测
- 中央、国务院:5G网络及业务全面支持IPv6(附解析)
- 用脑科学支持人工智能
- 简单讲解一下冒泡排序的原理 及代码
- 取消chrome浏览器下input和textarea的默认样式
- c++11 特性(二)
- bzoj4241 历史研究 (回滚莫队)
- 手游开发如何选择后端服务
- 无人驾驶汽车渐行渐近:百度宣布将于明年7月实现量产
- 机器学习期望最大算法:实例解析
- python中redis字符串操作
- 印度支持苹果扩大在印制造业务计划:谁的让步?