登录
首页 >  文章 >  php教程

PHP 数组自定义排序算法的编写指南

时间:2024-04-27 18:01:36 187浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习文章的朋友们,也希望在阅读本文《PHP 数组自定义排序算法的编写指南》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新文章相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

如何编写自定义 PHP 数组排序算法?冒泡排序:通过比较和交换相邻元素来排序数组。选择排序:每次选择最小或最大元素并将其与当前位置交换。插入排序:逐个插入元素到有序部分。

PHP 数组自定义排序算法的编写指南

PHP 数组自定义排序算法的编写指南

简介
数组排序是编程中一项常见任务,它允许我们根据特定标准重新组织数组中的元素。PHP 提供了多种内建排序算法,但有时我们需要根据自定义逻辑对数组进行排序,这就需要我们编写自己的自定义排序算法。

冒泡排序
冒泡排序是一种简单的排序算法,它通过反复比较相邻元素并交换它们的位置来对数组进行排序。

function bubbleSort(array &$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]) {
                $tmp = $arr[$j];
                $arr[$j] = $arr[$j + 1];
                $arr[$j + 1] = $tmp;
            }
        }
    }
}

选择排序
选择排序是一种基于选择最小或最大元素并将其与当前位置交换的排序算法。

function selectionSort(array &$arr) {
    $n = count($arr);
    for ($i = 0; $i < $n - 1; $i++) {
        $min_idx = $i;
        for ($j = $i + 1; $j < $n; $j++) {
            if ($arr[$j] < $arr[$min_idx]) {
                $min_idx = $j;
            }
        }

        $tmp = $arr[$i];
        $arr[$i] = $arr[$min_idx];
        $arr[$min_idx] = $tmp;
    }
}

插入排序
插入排序是一种基于逐个插入元素到有序部分的排序算法。

function insertionSort(array &$arr) {
    $n = count($arr);
    for ($i = 1; $i < $n; $i++) {
        $key = $arr[$i];
        $j = $i - 1;

        while ($j >= 0 && $arr[$j] > $key) {
            $arr[$j + 1] = $arr[$j];
            $j--;
        }

        $arr[$j + 1] = $key;
    }
}

实战案例
让我们使用冒泡排序算法按升序对以下 PHP 数组进行排序:

$arr = [5, 2, 8, 3, 1];

调用冒泡排序函数:

bubbleSort($arr);

排序后的数组:

[1, 2, 3, 5, 8]

好了,本文到此结束,带大家了解了《PHP 数组自定义排序算法的编写指南》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多文章知识!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>