算法实现-冒泡排序
冒泡排序
-
介绍:
冒泡排序是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。
-
算法步骤:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
-
动图演示:
-
进一步说明:
- 代码差不多就是两层for循环,在内层for循环里加个if语句用来交换数据
- 外层for次数 = 键值对个数 - 1;
- 外层循环一次后就可以确定一个这次循环的最大的数(如上图)
- 内层for循环次数 = 键值对个数 - 上层循环的次数($i) - 1;
- 内层循环就是一次外层循环数比较的次数
- if里边弄个$tmp变量来用于交换
-
代码示例:
<?php $num = [3, 1, 67, 12, 56, 98, 12, 2, 6, 34]; $len = count($num); // 外层循环控制次数 for($i = 0; $i < $len - 1; $i ++) { for($j = 0; $j < $len -$i - 1; $j ++) { // 内层循环控制一次循环时比较的次数 if($num[$j] > $num[$j +1]) { $tmp = $num[$j + 1]; $num[$j + 1] = $num[$j]; $num[$j] = $tmp; }; }; }; var_dump($num);
相关材料出处:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~