php实现冒泡排序


冒泡排序原理
冒泡排序是一种简单的排序算法,通过重复遍历待排序的数组,比较相邻元素并交换位置,将较大的元素逐渐“冒泡”到数组末尾。每次遍历会确定一个最大元素的最终位置。
PHP实现代码
function bubbleSort($array) {
$length = count($array);
for ($i = 0; $i < $length - 1; $i++) {
$swapped = false;
for ($j = 0; $j < $length - $i - 1; $j++) {
if ($array[$j] > $array[$j + 1]) {
// 交换相邻元素
$temp = $array[$j];
$array[$j] = $array[$j + 1];
$array[$j + 1] = $temp;
$swapped = true;
}
}
// 若未发生交换,提前结束排序
if (!$swapped) break;
}
return $array;
}
// 示例调用
$unsortedArray = [64, 34, 25, 12, 22, 11, 90];
$sortedArray = bubbleSort($unsortedArray);
print_r($sortedArray);
代码说明
- 外层循环:控制排序轮数,每次循环确定一个最大值的最终位置。
- 内层循环:比较相邻元素,若前一个元素大于后一个元素,则交换位置。
- 优化标志:通过
$swapped变量检测内层循环是否发生交换,若未交换则说明数组已有序,提前终止排序。
时间复杂度
- 最坏情况:$O(n^2)$(数组完全逆序)。
- 最好情况:$O(n)$(数组已有序,通过优化提前退出)。
应用场景
适用于小规模数据排序或教学演示,实际项目中更推荐使用PHP内置的sort()函数或高效算法(如快速排序)。






