PHP冒泡排序算法详解与代码示例

冒泡排序是一种简单直观的排序算法,它重复地遍历要排序的列表,每次比较相邻的两个元素,如果它们的顺序错误就交换它们的位置。重复这一过程,直到没有需要交换的元素,列表就完成了排序。

以下是使用PHP实现冒泡排序的代码示例:

function bubbleSort($arr) {
  $n = count($arr);
  for ($i = 0; $i < $n - 1; $i++) {
    for ($j = 0; $j < $n - $i - 1; $j++) {
      if ($arr[$j] > $arr[$j + 1]) {
        $temp = $arr[$j];
        $arr[$j] = $arr[$j + 1];
        $arr[$j + 1] = $temp;
      }
    }
  }
  return $arr;
}

// 示例
$arr = array(5, 3, 8, 4, 2);
$arr = bubbleSort($arr);
print_r($arr); // 输出:Array ( [0] => 2 [1] => 3 [2] => 4 [3] => 5 [4] => 8 )

代码解析:

  1. bubbleSort($arr) 函数: 接受一个数组 $arr 作为输入。
  2. $n = count($arr) 获取数组的长度并存储在变量 $n 中。
  3. 外部循环 for ($i = 0; $i < $n - 1; $i++) 控制排序的轮数,总共需要进行 $n-1 轮比较。
  4. 内部循环 for ($j = 0; $j < $n - $i - 1; $j++) 在每一轮中,比较相邻元素,如果前一个元素大于后一个元素,则交换它们的位置。
    • $n - $i - 1 确保每一轮比较的次数递减,因为每一轮结束后,最大的元素都已经冒泡到数组的末尾。
  5. if ($arr[$j] > $arr[$j + 1]) 比较相邻元素的大小。
  6. 交换元素: 使用临时变量 $temp 交换 $arr[$j]$arr[$j + 1] 的值。
  7. return $arr 返回排序后的数组。

示例运行结果:

Array ( [0] => 2 [1] => 3 [2] => 4 [3] => 5 [4] => 8 )

总结:

冒泡排序算法简单易懂,但效率较低,时间复杂度为 O(n^2),不适用于大规模数据的排序。

PHP冒泡排序算法详解与代码示例

原文地址: https://www.cveoy.top/t/topic/jwVY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录