`
erntoo
  • 浏览: 29998 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论
  • erntoo: 修改somaxconn该内核参数默认值一般是128,对于负载很 ...
    rpm

PHP算法-归并排序

    博客分类:
  • PHP
阅读更多
function merge_sort($arr)
{
    $count = count($arr);
    if ($count <= 1) {
        return $arr;
    }
    $mid = floor($count / 2);
    $left_arr = array_slice($arr, 0, $mid); // 递归分拆数组比较
    $right_arr = array_slice($arr, $mid);
    $left_arr = merge_sort($left_arr);
    $right_arr = merge_sort($right_arr);
    $arr = merge_arr($left_arr, $right_arr);
    return $arr;
}

/**
 * 比较两个 [顺序] 数组,并合并
 *
 * @param array $left_arr            
 * @param array $right_arr            
 */
function merge_arr($left_arr, $right_arr)
{
    $tmp_arr = [];
    // $i = 0;
    while (count($left_arr) && count($right_arr)) {
        // echo $i ++ . "\n"; //统计执行次数
        $tmp_arr[] = $left_arr[0] <= $right_arr[0] ? array_shift($left_arr) : array_shift($right_arr);
        print_r($tmp_arr);
    }
    return array_merge($tmp_arr, $left_arr, $right_arr);
}

 思想在于 1 不断分割数组到 最小  2 比较数组  排序 3 合并

分享到:
评论

相关推荐

    基于PHP的基本排序算法(快速排序、堆排序、基数排序等)

    排序算法 - 快速排序(Insert Sort) - 希尔排序(Shell Sort) - 冒泡排序(Bubble Sort) - 快速排序(Quick Sort) - 选择排序(Selection Sort) ...- 归并排序(Merge Sort) - 箱排序(Bin Sort) - 基数排序(Radix Sort)

    PHP-使用php实现的排序算法-Sorting.zip

    首先,排序算法是用来对一组数据进行排列的逻辑过程,它可以是升序或降序,常见的排序算法有冒泡排序、插入排序、选择排序、快速排序、归并排序和堆排序等。在PHP中,我们可以直接使用内置的`sort()`、`rsort()`、`a...

    php-leetcode题解之归并排序.zip

    归并排序是一种经典的排序算法,基于分治策略。在PHP中实现归并排序,我们可以将一个大数组分成两个较小的数组,分别对这两个小数组进行排序,然后将排好序的数组合并成一个大的有序数组。这个过程不断递归地进行,...

    十大经典排序算法-多种编程语言

    十大经典排序算法 (1)多种编程语言,JavaScript,python,go,php等语言。 (2)排序算法可以分为内部排序...常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序

    PHP-基于php实现的冒泡排序算法-BubbleSort.zip

    在实际开发中,我们通常会选择更高效的排序算法,如快速排序、归并排序或堆排序等。 了解并掌握冒泡排序算法有助于理解其他更复杂的排序算法,同时也能提升编程能力。在PHP开发中,虽然有内置的`sort()`和`asort()`...

    PHP-基于php实现的快速排序算法-QuickSort.zip

    在某些特定场景下,如内存限制严格或稳定性要求高的排序,可能需要考虑其他算法,如归并排序或插入排序。 在实际开发中,快速排序通常与其他排序算法结合使用,例如在数据预处理阶段先用快速排序大致排序,再用稳定...

    php-使用php开发的排序算法之BubbleSort-排序算法实现.zip

    在实际应用中,更高效的排序算法如快速排序、归并排序或堆排序等会更为常见。然而,冒泡排序在教学和理解排序算法的基本概念上具有重要意义。 总结一下,这份"php-使用php开发的排序算法之BubbleSort-排序算法实现....

    PHP排序算法之归并排序(Merging Sort)实例详解

    以上详细知识点涵盖了PHP归并排序算法的各个方面,包括其原理、过程、操作细节以及在PHP中的具体实现方法。通过阅读并理解这些内容,读者可以掌握归并排序的完整知识体系,并能够应用它解决实际问题。

    php代码-算法-排序-冒泡排序

    在实际应用中,我们通常会考虑其他更快速的排序算法,如快速排序、归并排序或者堆排序等。但在教学或理解排序算法的基本概念时,冒泡排序是一个很好的起点。 在`main.php`文件中,很可能是实现了这个冒泡排序函数,...

    php代码-十大排序算法

    归并排序也是基于分治法,将数组拆分为两半,分别排序,再合并。PHP中需要使用额外的空间来存储中间结果,最后合并两个有序数组。 6. 堆排序(Heap Sort): 堆排序利用了完全二叉树的特性,构建堆结构并进行调整,...

    PHP排序算法系列之归并排序详解

    归并排序是一种基于分治策略的高效排序算法,它的基本思想是将大问题分解为小问题来解决。在归并排序中,我们将一个大的无序序列分割成若干个小的有序序列,然后将这些有序序列逐步合并,最终得到完全有序的大序列。...

    用php实现几种常见的排序算法共6页.pdf.zip

    - **内存使用**:有些算法如归并排序和计数排序可能需要额外的内存空间,需要考虑内存限制。 - **稳定性**:稳定性是指相等的元素在排序后的相对位置不变,如冒泡排序和插入排序是稳定的,而快速排序和堆排序则不是...

    排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录

    由于始终需要额外的空间,归并排序是稳定的排序算法,时间复杂度为O(n log n)。 6. 快速排序:快速排序的核心是“分而治之”,通过选取一个基准值,将数组分为两部分,一部分所有元素小于基准,另一部分所有元素...

    50个优秀经典PHP算法大集合

    │ │ ├── MergeSort.php 归并排序 │ │ ├── InsertSort.php 插入排序 │ │ └── SelectSort.php 选择排序 │ │ │ ├── Query 查找篇 │ │ ├── BinaryQuery.php 二分查找 │ │ ├── ...

    详解PHP归并排序的实现

    归并排序是一种高效的、稳定的排序算法,其基本思想源于分治策略。在PHP中,归并排序通过将待排序的序列分解为两个或更多的子序列,对每个子序列进行排序,然后将排序后的子序列合并成一个整体有序序列。这个过程...

Global site tag (gtag.js) - Google Analytics