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

PHP算法-快速排序 分治法

    博客分类:
  • PHP
阅读更多
/**
 * 快速排序 分治法
 * 1 把小于指定数($key = $arr[0])的 放在左侧数组(left);大于$key 放在右侧数组
 * 2 合并 数组
 *
 * @param unknown $arr            
 */
function quick_sort($arr)
{
    $count = count($arr);
    if (count($arr) > 1) {
        $key = $arr[0];
        $left = [];
        $right = [];
        for ($i = 1; $i < $count; $i ++) {
            if ($arr[$i] <= $key) {
                $left[] = $arr[$i];
            } elseif ($arr[$i] > $key) {
                $right[] = $arr[$i];
            }
        }
        $left = quick_sort($left);
        $right = quick_sort($right);
        return array_merge($left, [
            $key
        ], $right);
    } else {
        return $arr;
    }
}

 

分享到:
评论

相关推荐

    PHP排序算法之快速排序(Quick Sort)及其优化算法详解

    在PHP中实现快速排序算法时,需要特别注意数组引用传递和变量的作用域问题,因为在PHP中默认的数组参数传递是通过值传递的,也就是说在函数中对数组的修改不会影响到原始数组。为了在快速排序中直接修改原数组,需要...

    快速排序的算法php实现类.zip

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer),通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的...

    php各种数组的排序算法

    快速排序是一种非常高效的排序算法,采用分治法策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个子序列。快速排序的关键在于选择基准值,并以此将数组分成左右两部分,左边的元素都比基准小,右边的...

    php代码-十大排序算法

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

    快速排序的算法php实现类

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer)。在这个PHP实现的快速排序类中,我们将深入探讨该算法的原理、实现细节以及如何在PHP中...

    PHP 排序算法源代码

    快速排序是一种高效的分治算法,通过选择一个“基准”元素,将数组分为两部分,一部分的所有元素都小于基准,另一部分所有元素都大于基准,然后递归地对这两部分进行快速排序。PHP实现快速排序的关键是划分操作和...

    PHP实现各种排序算法

    以上就是PHP实现的各种排序算法,包括冒泡排序、交换法排序、选择法排序、插入法排序以及快速排序。在实际开发中,根据数据特性和性能需求,选择合适的排序算法至关重要。例如,冒泡排序和插入排序适用于小规模数据...

    php冒泡排序和快速排序

    它的基本思想是采用分治法。快速排序通常比其他O(n log n)算法更快,因为它的内部循环可以在大部分的架构上更有效率地实现。 1. **基本步骤** - 选择一个元素作为"基准"(pivot)。 - 将所有小于基准的元素移动到...

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

    快速排序是一种非常高效的排序算法,它的基本思想是使用分治法,选取一个基准元素,将数组分为两部分,小于基准的放左边,大于基准的放右边,然后递归处理左右两边。 4. **归并排序**:归并排序是分治策略的典型...

    PHP面试题之算法

    Hoare提出的高效算法,采用分治法,通过选取一个基准值并将其与其他元素进行比较,将数组分为两部分,再对这两部分分别进行快速排序。 3. 归并排序:同样基于分治法,将大数组不断分成小数组,然后逐个合并已排序...

    php排序算法(冒泡排序,快速排序)

    冒泡排序和快速排序是两种常见的排序算法,在编程中广泛应用于数据的排序处理。在PHP中实现这两种算法同样是非常实用的技能。下面我将详细介绍这两种排序算法的实现原理以及PHP中的代码实现。 首先我们来看冒泡排序...

    php快速排序原理与实现方法分析

    快速排序是一种高效的排序算法,由C. A. R. Hoare在1960年提出。它采用分治法的策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个子序列。与冒泡排序相比,快速排序的平均时间复杂度更低,适合处理大...

    PHP中的几种排序算法1

    其基本思想是采用分治法,选取一个基准值,将数组分为两部分,一部分的元素都小于基准,另一部分的元素都大于基准,然后对这两部分分别进行快速排序。在PHP中实现快速排序可以这样写: ```php function quickSort($...

    PHP快速排序算法实例分析

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法,通过选取一个基准值,将待排序的数组分为两个子序列,使得一个子序列的所有元素都比基准值小,另一个子序列的...

    排序算法之PHP版快速排序、冒泡排序

    快速排序的速度优势主要是由于它减少了比较和交换的次数,并且通过分治法将大问题分解为小问题来解决。不过,快速排序在最坏的情况下可能会退化为冒泡排序的效率,这时时间复杂度会达到O(n^2),但这种情况并不常见。...

    程序员必备算法知识

    1. **排序算法**:排序是编程中最常见的需求,PHP中常见的排序算法有冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序。其中,快速排序和归并排序在效率上较为突出,适用于大数据量的处理;而冒泡排序和...

    dsa:数据结构和算法-示例和实现

    它的基本思想是分治法,通过选取一个基准元素,将数组分为小于基准和大于基准的两部分,然后递归地对这两部分进行排序。快速排序在平均情况下具有O(n log n)的时间复杂度,是实际应用中最常用的排序算法之一。 ...

Global site tag (gtag.js) - Google Analytics