Я просто задавался вопросом, можно ли (с некоторой серьезной паранойей и при определенных обстоятельствах) использовать алгоритм QuickSort в качестве угрозы безопасности в приложении.
Как в базовой реализации, так и в улучшенных версиях, таких как 3-медиа-quicksort, есть особенность поведения девиантных для определенных входных данных, что означает, что их время выполнения может значительно увеличиться в этих случаях (с O(n^2)
сложностью), не говоря уже о возможности потока stackoverflow.
Следовательно, я мог бы видеть потенциал для нанесения вреда, предоставляя предварительно отсортированные данные программе, которая заставляет алгоритм вести себя так, что может иметь непредсказуемые последствия, например. многоклиентское веб-приложение.
В этом странном случае стоит вопрос безопасности (и поэтому заставит нас использовать Intro- или Mergesort)?
Изменить: Я знаю, что есть способы предотвратить худшие случаи Quicksort, но что касается языковых интегрированных ролей (например, 3-медиана .NET). Будут ли они табу?