Согласно документации:
sort
:
Текущая реализация
Текущий алгоритм является адаптивной итеративной сортировкой слияниемвдохновленный timsort .Он разработан, чтобы быть очень быстрым в случаях, когда срез почти отсортирован, или состоит из двух или более отсортированных последовательностей, соединенных одна за другой.
Кроме того, он выделяет временное хранилище вдвое меньше, чем само, но для краткостиSlices вместо этого используется неразмещающая вставка sort.
Что касается остальной части стандартной библиотеки и всего компилятора, источник доступен на GitHub .
sort_unstable
:
Текущая реализация
Текущий алгоритм основан на быстрой сортировке с разбивкой по шаблонам Орсоном Питерсом, который сочетает в себе быстрый средний случай рандомизированной быстрой сортировки с быстрым худшим случаем heapsort, при этом достигается линейное время на срезах с определенными шаблонами.Он использует некоторую рандомизацию, чтобы избежать вырожденных случаев, но с фиксированным начальным числом, чтобы всегда обеспечивать детерминированное поведение.
Обычно это быстрее, чем стабильная сортировка, за исключением нескольких особых случаев, например, когда срез состоит из нескольких сцепленных отсортированныхпоследовательности.
Источник также доступен на GitHub .
(выделение мое)