当前位置:首页 > PHP

php实现冒泡排序

2026-02-13 20:25:35PHP

php实现冒泡排序

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()函数或高效算法(如快速排序)。

标签: php
分享给朋友:

相关文章

php实现分页

php实现分页

PHP实现分页的基本方法 使用LIMIT和OFFSET进行数据库查询分页。通过计算当前页码和每页显示数量,动态生成SQL语句。 $page = isset($_GET['page']) ? (int…

php实现验证码

php实现验证码

PHP实现验证码的方法 使用GD库生成验证码 GD库是PHP中处理图像的扩展,可用于生成验证码图片。 <?php session_start(); $width = 120; $height…

php实现树

php实现树

PHP实现树结构的方法 在PHP中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class Tr…

php实现搜索

php实现搜索

PHP实现搜索功能的方法 在PHP中实现搜索功能通常涉及数据库查询和用户输入的匹配。以下是几种常见的实现方式: 使用MySQL LIKE语句 通过简单的LIKE语句实现基础搜索: $searchT…

php 实现接口

php 实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不包含具体的实现。类可以实现(implement)接口,并必须实现接口中定义的所有方法。 定义接口 接口通…

php 实现秒杀

php 实现秒杀

PHP 实现秒杀的关键技术 秒杀系统需要解决高并发、超卖、性能瓶颈等问题。以下是实现秒杀的核心方案: 使用 Redis 预减库存 将商品库存提前加载到 Redis 中,通过原子操作保证库存准确性:…