当前位置:首页 > PHP

php实现冒泡排序

2026-01-28 22:16:58PHP

冒泡排序原理

冒泡排序是一种简单的排序算法,通过重复遍历待排序的列表,比较相邻元素并交换位置,将较大(或较小)的元素逐步“冒泡”到列表末端。时间复杂度为 (O(n^2)),适合小规模数据排序。

PHP实现代码

function bubbleSort(array $arr): array {
    $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;
}

// 示例调用
$array = [64, 34, 25, 12, 22, 11, 90];
$sortedArray = bubbleSort($array);
print_r($sortedArray);

代码说明

  1. 外层循环:控制排序轮数,共需 (n-1) 轮((n) 为数组长度)。
  2. 内层循环:每轮比较相邻元素,若前一个元素大于后一个元素,则交换位置。
  3. 优化点:可添加标志位检测某一轮是否无交换,提前终止排序(针对已有序数组)。

优化版本

function optimizedBubbleSort(array $arr): array {
    $n = count($arr);
    for ($i = 0; $i < $n - 1; $i++) {
        $swapped = false;
        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;
                $swapped = true;
            }
        }
        if (!$swapped) break; // 本轮无交换,提前结束
    }
    return $arr;
}

输出结果

输入 [64, 34, 25, 12, 22, 11, 90] 时,输出为升序数组:

php实现冒泡排序

Array
(
    [0] => 11
    [1] => 12
    [2] => 22
    [3] => 25
    [4] => 34
    [5] => 64
    [6] => 90
)

标签: php
分享给朋友:

相关文章

php实现文件下载

php实现文件下载

PHP实现文件下载的方法 通过PHP实现文件下载功能,可以采用多种方式,以下是几种常见的实现方法: 使用header()函数强制下载 设置HTTP头信息,强制浏览器下载文件而非直接打开: $fi…

php 路由实现

php 路由实现

PHP 路由实现方法 在 PHP 中实现路由功能有多种方式,以下是几种常见的实现方法: 使用原生 PHP 实现 通过解析 URL 并匹配对应的控制器和动作: $request = $_SERVER…

php实现注册

php实现注册

注册功能实现步骤 数据库准备 创建用户表,包含字段如id、username、password、email等。示例SQL: CREATE TABLE users ( id INT AUTO_I…

php 实现购物车

php 实现购物车

PHP 实现购物车功能 购物车功能是电子商务网站的核心部分,可以通过 PHP 和 Session 或数据库来实现。以下是两种常见的实现方式: 使用 Session 存储购物车数据 Sessi…

php实现异步

php实现异步

PHP 实现异步的方法 PHP 本身是同步执行的脚本语言,但可以通过以下方法模拟异步操作或实现异步效果: 使用多进程(pcntl_fork) 通过 pcntl_fork 创建子进程实现异步,适用于…

php 实现下载

php 实现下载

PHP 实现文件下载的方法 使用 PHP 实现文件下载可以通过设置 HTTP 头信息,强制浏览器将文件作为附件下载而非直接打开。 基本下载实现 $file_path = 'path/to/your/…