PHP冒泡排序核心是相邻元素两两比较、大的往后挪,每轮将最大值“冒泡”至末尾,共需n-1轮;可优化为提前终止,封装成函数支持任意数组,但时间复杂度为O(n²),仅适用于小数据或教学。
PHP冒泡排序从小到大,核心是**相邻元素两两比较、大的往后挪**,每轮把当前最大值“冒泡”到末尾,重复n-1轮即可完成升序排列。
)这是最直观的写法,适合理解原理:
$arr = [64, 34, 25, 12, 22, 11, 90];$n = count($arr); for ($i = 0; $i < $n - 1; $i++) { for ($j = 0; $j < $n - 1 - $i; $j++) { if ($arr[$j] > $arr[$j + 1]) { // 交换 $temp = $arr[$j]; $arr[$j] = $arr[$j + 1]; $arr[$j + 1] = $temp; } } }
print_r($arr); // 输出:[11, 12, 22, 25, 34, 64, 90]
如果某一轮没发生任何交换,说明数组已经有序,可提前退出,避免多余循环:
$arr = [64, 34, 25, 12, 22, 11, 90]; $n = count($arr);for ($i = 0; $i < $n - 1; $i++) { $swapped = false; for ($j = 0; $j < $n - 1 - $i; $j++) { if ($arr[$j] > $arr[$j + 1]) { $temp = $arr[$j]; $arr[$j] = $arr[$j + 1]; $arr[$j + 1] = $temp; $swapped = true; } } if (!$swapped) break; }
写成函数更实用,注意传参用引用&$arr可直接修改原数组:
function bubbleSort(&$arr) {
$n = count($arr);
for ($i = 0; $i < $n - 1; $i++) {
$swapped = false;
for ($j = 0; $j < $n - 1 - $i; $j++) {
if ($arr[$j] > $arr[$j + 1]) {
$temp = $arr[$j];
$arr[$j] = $arr[$j + 1];
$arr[$j + 1] = $temp;
$swapped = true;
}
}
if (!$swapped) break;
}
}
// 使用示例
$nums = [5, 2, 8, 1, 9];
bubbleSort($nums);
print_r($nums); // [1, 2, 5, 8, 9]
冒泡排序简单易懂,但效率不高,仅适合小数据或教学场景:
基本上就这些。理解思路比死记代码更重要——记住“两两比、大的沉底、轮轮缩、早停省力”。
# php
# app
# 排列
# 冒泡排序
# count
# sort
# for
# 封装
# break
# 快速排序
# 循环
# 算法
# 这是
# 升序
# 适用于
# 不高
# 更重要
# 可直接
# 或其它
# 本轮
# 从小到大
# 最坏
相关文章:
山东网站制作公司有哪些,山东大源集团官网?
如何通过IIS搭建网站并配置访问权限?
宝塔Windows建站如何避免显示默认IIS页面?
深圳企业网站制作设计,在深圳如何网上全流程注册公司?
如何正确下载安装西数主机建站助手?
如何用低价快速搭建高质量网站?
如何快速查询网站的真实建站时间?
建站之星如何实现五合一智能建站与营销推广?
西安专业网站制作公司有哪些,陕西省建行官方网站?
智能起名网站制作软件有哪些,制作logo的软件?
安徽网站建设与外贸建站服务专业定制方案
如何快速搭建二级域名独立网站?
建站之星logo尺寸如何设置最合适?
电脑免费海报制作网站推荐,招聘海报哪个网站多?
网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?
英语简历制作免费网站推荐,如何将简历翻译成英文?
实例解析Array和String方法
阿里云网站制作公司,阿里云快速搭建网站好用吗?
,怎么用自己头像做动态表情包?
建站之星后台管理如何实现高效配置?
如何在IIS中配置站点IP、端口及主机头?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
常州企业网站制作公司,全国继续教育网怎么登录?
建站OpenVZ教程与优化策略:配置指南与性能提升
招贴海报怎么做,什么是海报招贴?
如何选择美橙互联多站合一建站方案?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
如何快速搭建高效香港服务器网站?
建站之星后台管理系统如何操作?
如何高效利用200m空间完成建站?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
如何在景安服务器上快速搭建个人网站?
如何确保西部建站助手FTP传输的安全性?
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
详解jQuery停止动画——stop()方法的使用
建站之星如何快速生成多端适配网站?
济南专业网站制作公司,济南信息工程学校怎么样?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
制作宣传网站的软件,小红书可以宣传网站吗?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
网站网页制作专业公司,怎样制作自己的网页?
如何高效配置香港服务器实现快速建站?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
高端企业智能建站程序:SEO优化与响应式模板定制开发
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
如何用花生壳三步快速搭建专属网站?
如何获取上海专业网站定制建站电话?
内部网站制作流程,如何建立公司内部网站?
SQL查询语句优化的实用方法总结
*请认真填写需求信息,我们会在24小时内与您取得联系。