23 подписчика
Разрыватор пукана фанатам .net Framework (к коим я уже лет двадцать отношусь, да).
Встроенный в .net Framework алгоритм сортировки до четвёртой версии фреймворка был Quicksort (сейчас для маленьких массивов Insertion sort, для очень больших массивов Heapsort, для средних остаётся Quicksort).
В то время, как в Python используется только и исключительно Timsort.
Для тех, кто не понял, в чём попаболь, и умеет в высшую математику, поясняю.
Средняя сложность Quicksort, Heapsort и Timsort составляет O(n log n). Вроде всё хорошо, баш на баш. Однако, в худшем случае Quicksort сваливается до O(n²) [худший случай для него – это, например, когда массив уже отсортирован, но в обратном порядке], аки бы алгоритм Бурбухи, в то время как Heapsort и Timsort сохраняют оценку. Такие дела.
p.S. А вот слышал я, есть на свете такое диво, как пуперсекретный вундералгоритм, сортирующий за O(log n). То есть при его использовании анекдот про поиск минимального элемента массива сортировкой и взятием первого элемента перестаёт быть анекдотом. Правда, говорят, память кушает как не в себя.
Около минуты
29 сентября 2022