当前位置:首页 > PHP

php实现选择排序

2026-04-03 09:10:46PHP

选择排序算法原理

选择排序是一种简单直观的排序算法。基本思想是每次从未排序部分选择最小(或最大)元素,放到已排序部分的末尾,直到所有元素排序完成。时间复杂度为O(n²),适用于小规模数据排序。

php实现选择排序

PHP实现代码

function selectionSort(array $arr): array {
    $len = count($arr);
    for ($i = 0; $i < $len - 1; $i++) {
        $minIndex = $i;
        for ($j = $i + 1; $j < $len; $j++) {
            if ($arr[$j] < $arr[$minIndex]) {
                $minIndex = $j;
            }
        }
        if ($minIndex != $i) {
            // 交换元素
            $temp = $arr[$i];
            $arr[$i] = $arr[$minIndex];
            $arr[$minIndex] = $temp;
        }
    }
    return $arr;
}

// 使用示例
$unsortedArray = [64, 25, 12, 22, 11];
$sortedArray = selectionSort($unsortedArray);
print_r($sortedArray);

代码解析

外层循环控制排序轮数,内层循环查找未排序部分的最小值索引。找到最小值后与当前外层循环位置的元素交换。通过双重循环逐步将最小元素移动到数组前端。

php实现选择排序

算法优化方向

可以同时记录最小值和最大值,每次排序将最小值和最大值分别放到数组两端,减少排序轮数。但这种优化仍保持O(n²)时间复杂度。

注意事项

选择排序是不稳定排序算法(相同元素可能改变相对位置)。对于大规模数据排序效率较低,建议使用更高效的算法如快速排序或归并排序。

标签: php
分享给朋友:

相关文章

php无限分类的实现

php无限分类的实现

PHP无限分类的实现 无限分类是一种常见的树形结构数据组织方式,适用于商品分类、菜单管理、地区选择等场景。以下是几种实现方法: 递归实现法 递归是最直观的实现方式,通过函数自身调用来遍历子分类。数据…

php搜索功能实现

php搜索功能实现

实现基本的PHP搜索功能 使用MySQL数据库和PHP实现简单的关键词搜索功能。需要确保数据库中有可供搜索的表和数据。 // 连接数据库 $conn = new mysqli('localhost'…

php 实现单链表

php 实现单链表

单链表的基本概念 单链表是一种线性数据结构,由节点组成,每个节点包含数据域和指向下一个节点的指针域。链表的头节点是访问整个链表的入口。 单链表的节点类实现 在PHP中,可以通过类来定义链表节点。每个…

php 无限分类的实现

php 无限分类的实现

无限分类的实现方法 无限分类通常用于构建树形结构数据,如商品分类、多级菜单等。以下是几种常见的实现方式: 邻接列表模型(Adjacency List) 邻接列表是最简单的实现方式,通过在每个节点中存…

php实现过程

php实现过程

PHP 实现过程 PHP 是一种广泛使用的服务器端脚本语言,特别适合 Web 开发。以下是 PHP 实现过程的关键步骤和注意事项。 安装与配置 下载并安装 PHP,可以从官方 PHP 网站获取最新版…

php实现文章

php实现文章

PHP实现文章管理功能 在PHP中实现文章管理功能通常涉及数据库操作、表单处理和页面展示。以下是实现文章管理的基本步骤: 数据库设计 创建articles表,包含字段如id、title、conten…