Какой алгоритм сортировки использует PHP? - PullRequest
28 голосов
/ 02 июля 2010

Собственно говоря, какой алгоритм (ы) использует PHP для реализации различных функций сортировки, которые он предлагает?Кажется, что варианты usort могут использовать другой алгоритм, чем встроенные сортировки, но я хотел знать.

Где бы я мог найти эту информацию?

Спасибо!

Ответы [ 3 ]

37 голосов
/ 02 июля 2010

Вы можете найти информацию, посмотрев руководство по php.http://php.net/sort говорит, что PHP использует реализацию Quicksort .Если это не удастся, вы всегда сможете пройтись по самому исходному коду PHP.

19 голосов
/ 02 июля 2010

Для сортировки PHP использует реализацию быстрой сортировки, которую можно найти в Zend/zend_qsort.c, которая принимает функцию сравнения и массив элементов.Функция сравнения по умолчанию для sort() определена в ext/standard/array.c и называется php_array_data_compare().Таким образом, в принципе, это тот же алгоритм для всех функций сортировки, за исключением того, что они принимают разные функции сравнения.

0 голосов
/ 02 июля 2010

IIRC, PHP использует быструю сортировку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...