当前位置:首页 > PHP

php实现选择排序

2026-02-28 00:21:39PHP

PHP实现选择排序

选择排序是一种简单直观的排序算法,其基本思想是每次从未排序的部分选择最小(或最大)的元素,放到已排序部分的末尾。以下是PHP实现选择排序的代码示例:

php实现选择排序

function selectionSort($array) {
    $length = count($array);

    for ($i = 0; $i < $length - 1; $i++) {
        $minIndex = $i;

        for ($j = $i + 1; $j < $length; $j++) {
            if ($array[$j] < $array[$minIndex]) {
                $minIndex = $j;
            }
        }

        if ($minIndex != $i) {
            $temp = $array[$i];
            $array[$i] = $array[$minIndex];
            $array[$minIndex] = $temp;
        }
    }

    return $array;
}

代码说明

外层循环从数组的第一个元素开始,遍历到倒数第二个元素。内层循环从当前元素的下一个元素开始,遍历到数组末尾,寻找最小元素的索引。

php实现选择排序

找到最小元素后,如果最小元素的索引不等于当前元素的索引,则交换两个元素的位置。这样每次外层循环结束后,当前元素位置就会放置剩余未排序部分的最小值。

使用示例

$unsortedArray = [64, 25, 12, 22, 11];
$sortedArray = selectionSort($unsortedArray);
print_r($sortedArray);

输出结果:

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

算法复杂度

选择排序的时间复杂度为O(n²),其中n是数组的长度。这是因为对于每个元素,都需要遍历剩余的未排序部分来找到最小元素。空间复杂度为O(1),因为排序是在原数组上进行的,只需要常数级的额外空间用于交换元素。

标签: php
分享给朋友:

相关文章

php实现websocket

php实现websocket

PHP 实现 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。PHP 可以通过多种方式实现 WebSocket 功能,以下是几种常见的方法: 使用 Ratc…

php实现栈

php实现栈

栈的基本概念 栈(Stack)是一种遵循后进先出(LIFO)原则的数据结构。核心操作包括: push:元素入栈。 pop:元素出栈(返回并移除栈顶元素)。 peek:查看栈顶元素…

php 实现验证码

php 实现验证码

使用 PHP 生成验证码 验证码(CAPTCHA)用于防止自动化脚本提交表单,以下是几种常见的 PHP 实现方法。 使用 GD 库生成图片验证码 GD 库是 PHP 的图像处理扩展,可用于生成验证码…

php 函数实现

php 函数实现

PHP 函数实现基础 PHP 函数的定义使用 function 关键字,后跟函数名和参数列表。函数名不区分大小写,但建议保持一致。 function functionName($param1, $p…

php 线程实现

php 线程实现

PHP 线程实现方法 PHP 本身是单线程语言,但可以通过扩展或库实现多线程功能。以下是几种常见的实现方式: 使用 pthreads 扩展 pthreads 是一个 PHP 扩展,允许在 PHP 中…

php实现短信验证

php实现短信验证

PHP实现短信验证的步骤 选择合适的短信服务提供商 国内常见的短信服务提供商包括阿里云短信、腾讯云短信、云片等。注册账号并获取API密钥和签名模板是第一步。这些平台通常提供详细的开发文档和SDK。…