Внутри, какой алгоритм (ы) использует PHP для реализации различных функций сортировки, которые он предлагает? Похоже, что варианты usort могут использовать другой алгоритм, чем встроенные, но я хотел знать.
Где я могу найти эту информацию?
Благодаря!
Вы можете найти информацию, посмотрев руководство по php. http://php.net/sort говорит, что PHP использует реализацию Quicksort . В противном случае вы всегда можете пробраться через исходный код PHP.
Для сортировки PHP использует реализацию Zend/zend_qsort.c
, которая может быть найдена в Zend/zend_qsort.c
, которая принимает функцию сравнения и массив элементов. Функция сравнения по умолчанию для sort()
определена в ext/standard/array.c
и называется php_array_data_compare()
. Таким образом, в принципе, это один и тот же алгоритм для всех функций сортировки, за исключением того, что они выполняют разные функции сравнения.
IIRC, PHP использует быструю сортировку