【发布时间】:2023-07-02 19:12:01
【问题描述】:
从内部来说,PHP 使用哪种算法来实现它提供的各种排序功能?似乎 usort 变体可能使用与内置排序不同的算法,但我想知道。
我什至在哪里可以找到这些信息?
谢谢!
【问题讨论】:
从内部来说,PHP 使用哪种算法来实现它提供的各种排序功能?似乎 usort 变体可能使用与内置排序不同的算法,但我想知道。
我什至在哪里可以找到这些信息?
谢谢!
【问题讨论】:
您可以通过查看 php 手册找到相关信息。 http://php.net/sort 表示 PHP 使用 Quicksort 的实现。如果做不到这一点,您总是可以在 PHP 源代码本身中跋涉。
【讨论】:
对于排序,PHP 使用了一个可以在Zend/zend_sort.c 中找到的快速排序实现,它接受一个比较函数和一个元素数组。 sort() 的默认比较函数在ext/standard/array.c 中定义,称为php_array_data_compare()。所以基本上,所有排序函数的算法都是一样的,只是它们采用不同的比较函数。
【讨论】:
IIRC,PHP 使用快速排序
【讨论】: