php实现归并排序

简介: php实现归并排序

function mergeSort(arr) {arr) {length = count($arr);

if ($length <= 1) {
    return $arr;
}

$mid = (int)($length / 2);
$left = array_slice($arr, 0, $mid);
$right = array_slice($arr, $mid);

$left = mergeSort($left);
$right = mergeSort($right);

return merge($left, $right);
AI 代码解读

}

function merge(left,right) {
result=[];leftLength = count(left);rightLength = count(right);i = $j = 0;

while ($i < $leftLength && $j < $rightLength) {
    if ($left[$i] <= $right[$j]) {
        $result[] = $left[$i];
        $i++;
    } else {
        $result[] = $right[$j];
        $j++;
    }
}

while ($i < $leftLength) {
    $result[] = $left[$i];
    $i++;
}

while ($j < $rightLength) {
    $result[] = $right[$j];
    $j++;
}

return $result;
AI 代码解读

}

// 示例使用
$numbers = [5, 2, 8, 12, 3];

sortedNumbers=mergeSort(numbers);

print_r($sortedNumbers);

目录
打赏
0
2
2
0
50
分享
相关文章
深入理解PHP中的数组排序技巧
【9月更文挑战第13天】在PHP编程中,处理数组数据是一项常见而重要的任务。本文旨在揭示数组排序的多种方法及其适用场景,通过直观的代码示例和深入浅出的解释,引导读者掌握PHP数组排序的技巧,提升编程效率和代码质量。
|
10月前
|
PHP实现快速排序
`quickSort` 函数实现了一个快速排序算法。当数组长度小于或等于1时,直接返回数组。选择第一个元素作为基准,遍历数组将元素分别放入左(小于基准)和右(大于等于基准)两个子数组。递归地对子数组进行排序,最后合并结果。示例展示了对一个无序数组排序并输出。
55 0
|
10月前
|
PHP
PHP实现桶排序
`bucketSort`函数用于对数组进行排序。它首先找出数组的最小值和最大值,计算出桶的数量,然后将元素分配到相应桶中。每个桶内部进行排序后,再合并所有桶中的元素以得到最终有序数组。示例展示了如何使用该函数对一个无序数组进行排序并打印结果。
36 0
常见排序算法及PHP实现
冒泡排序 是一种交换排序,它的基本思想是:对待排序记录从后往前(逆序)进行多遍扫描,当发现相邻两条记录的次序与排序要求的规则不符时,就将这两个记录进行交换。这样,值较小的记录将逐渐从后面向前移动,就像气泡在水中向上浮一样。
常见排序算法及PHP实现
【PHP】冒泡排序
【PHP】冒泡排序
100 0
PHP面试题:使用PHP描述快速排序算法,对象可以是一个数组?
PHP面试题:使用PHP描述快速排序算法,对象可以是一个数组?
100 0