`
erntoo
  • 浏览: 27269 次
  • 性别: 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)

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

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

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

    本文实例讲述了PHP排序算法之归并排序(Merging Sort)。分享给大家供大家参考,具体如下: 基本思想: 归并排序:就是利用归并(合并)的思想实现的排序方法。它的原理是假设初始序列含有 n 个元素,则可以看成是 n ...

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

    主要为大家详细介绍了PHP排序算法系列之归并排序的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

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

    PHP中的几种排序算法

    PHP中的几种排序算法 一、 开发环境 1、环境搭建:Windows 7+Apache 2.4.18+MySQL 5.7.11+PHP 7.1.0。...本案例主要使用PHP 7中的几种排序算法:快速排序、选择排序、插入排序、冒泡排序、归并排序来实现排序的功能。

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

    利用python,JavaScript,java,go,PHP等实现: 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 计数排序 桶排序 基数排序

    详解PHP归并排序的实现

    本文主要介绍了php归并排序的实现算法,即把待排序序列分为若干个有序的子序列,再把有序的子序列合并为整体有序序列。有兴趣的朋友可以来了解一下。

    php实现的常见排序算法汇总

    主要介绍了php实现的常见排序算法汇总,包括插入排序、选择排序、冒泡排序、快速排序、归并排序与堆排序,并附有对排序算法的详细说明,需要的朋友可以参考下

    php 归并排序 数组交集

    复制代码 代码如下:$a=array(‘1′,’2′,’3′,’4′,’22’); $b=array(‘1′,’3′,’4′,’11’,’22’,’23’); f($a, $b, 5, 6, $t); print_r($t); function f(&$a, &$b, $n, $m, &$t){ $i=0;...

    ALG:php 的一些算法知识

    ALG ├──ALG │ ├── Sort 排序篇 │ │ ├── BubbleSort.php 冒泡排序 │ │ ├── QuickSort.php 快速排序 │ │ ├── HeapSort.php 堆排序 大根堆 ...│ │ ├── MergeSort.php 归并排序 │ │ ├──

    PHP版本常用的排序算法汇总

    //1、冒泡排序 function bubble_sort($arr){  $n = count($arr);  for($i=0;$i&lt;$n-1;$i++){  for($j=$i+1;... //2、归并排序 //merge函数将指定的两个有序数组(arr1arr2,)合并并且排序 //我

    leetcode下载-algorithm_base:简单算法基础练习

    归并排序 Merge.php 计数排序 Count.php 桶排序 Bucket.php LeetCode 题库 Leetcode/ 001 两数之和 001_two_sum.php 002 两数相加 002_add_two_numbers.php 003 最长无重复字串 003_longest_no_repeat_sub_str.php ...

    php约瑟夫问题解决关于处死犯人的算法

    主要介绍了php约瑟夫问题解决关于处死犯人的算法,实例分析了php关于约瑟夫问题的实现与应用技巧,具有一定参考借鉴价值,需要的朋友可以参考下

    light-tips:有关算法,php等的一些代码提示:fire:

    O(n2) O(1)稳定希尔排序Ω(nlogn) Θ(n(log(n))2) O(n(log(n))2) O(1)不稳定选择排序Ω(n2) Θ(n2) O(n2) O(1)不稳定堆排序Ω(nlogn) Θ(logn) O(登录) O(1)不稳定归并排序Ω...

    The-Algorithms-PHP:PHP也可以写数据结构和算法

    [归并排序] [快速排序] [堆排序] 冒泡 优化冒泡 选择 优化选择 插入 归并 快排 堆排序 100 0.00023 0.000277 0.000098 0.000082 0.000104 0.000192 0.00014 0.00019 1000 0.02423 0.02597 0.01434 0...

    PHP应用开发框架yaf-lib.zip

    :selection 选择排序::bubble 冒泡排序::merge 归并排序Search_SegmentSearch_Segment类 中文分词init 分词器初始化close 关闭query 获取原数据列表queryOne 获取单个原数据cutQuery 切分原数据cutString 切分字符串...

Global site tag (gtag.js) - Google Analytics