Я же правильно понимаю, если мне хочется не O(n^2) в пограничных случаях, понадобится убить константу алгоритма? Это вообще законная реализация квиксорта? А то я чёт сомневаюсь в её валидности....
Я же правильно понимаю, если мне хочется не O(n^2) в пограничных случаях, понадобится убить константу алгоритма? Это вообще законная реализация квиксорта? А то я чёт сомневаюсь в её валидности....
это на самом деле трисорт с несбалансированным деревом
ну по-хорошему в квиксорте нужно случайный опорный элемент брать
интересно кстати, что от случайности зависит время работы, но не результат то есть в грубом смысле (если не рассматривать время работы) пресловутая "ссылочная прозрачность" сохраняется
случайность опорного элемента сильно уменьшает вероятность попасть на O(n^2) кейс, т.к. для моей реализации достаточно сунуть предварительно отсортированный список - его будет жевать квадрат итераций
случайность опорного элемента сильно уменьшает вероятность попасть на O(n^2) кейс, т.к. для моей реализации достаточно сунуть предварительно отсортированный список - его будет жевать квадрат итераций
она не гарантирует этого) если кости выпадут так, что случайный элемент всегда будет минимальным(а ты не можешь гарантировать, что такого кейса не будет), то всё равно квадрат получится)
она не гарантирует этого) если кости выпадут так, что случайный элемент всегда будет минимальным(а ты не можешь гарантировать, что такого кейса не будет), то всё равно квадрат получится)
я говорю про среднее время работы, то есть про матожидание