PHP使用啥排序算法?

Posted

技术标签:

【中文标题】PHP使用啥排序算法?【英文标题】:What sort algorithm does PHP use?PHP使用什么排序算法? 【发布时间】:2010-07-02 13:18:59 【问题描述】:

从内部来说,php 使用哪种算法来实现它提供的各种排序功能?似乎 usort 变体可能使用与内置排序不同的算法,但我想知道。

我什至在哪里可以找到这些信息?

谢谢!

【问题讨论】:

【参考方案1】:

您可以通过查看 php 手册找到相关信息。 http://php.net/sort 表示 PHP 使用 Quicksort 的实现。如果做不到这一点,您总是可以在 PHP 源代码本身中跋涉。

【讨论】:

【参考方案2】:

对于排序,PHP 使用了一个可以在Zend/zend_sort.c 中找到的快速排序实现,它接受一个比较函数和一个元素数组。 sort() 的默认比较函数在ext/standard/array.c 中定义,称为php_array_data_compare()。所以基本上,所有排序函数的算法都是一样的,只是它们采用不同的比较函数。

【讨论】:

【参考方案3】:

IIRC,PHP 使用快速排序

【讨论】:

自从蒂莫西在 FGITW 游戏中“忍者”了你,并且因为这个 5 字的答案在十多年来没有被任何研究人员发现有帮助,你可能会考虑放弃这篇文章来自页面。您的来电。

以上是关于PHP使用啥排序算法?的主要内容,如果未能解决你的问题,请参考以下文章

时间为O(nlg n)的排序算法 如快速排序 堆排序 nlg是啥意思。好象是lgn。 啥意思?

在线排序算法和外部排序算法有啥区别?

python包含啥算法

有啥算法是相邻交换排序的(除了冒泡以外)

硬排序问题 - 我应该使用啥类型的算法?

我的 python 递归快速排序算法有啥问题?