ByteBoss & NoteMax
Привет, НотМакс. Я уже несколько часов смотрю на этот узкий O(n log n) участок сортировки. Думаешь, алгоритм Quickselect поможет сократить время работы вдвое, или это просто временное решение?
Привет,
Quickselect в среднем за линейное время выдаст тебе k-й элемент, так что если нужен просто медиана или какой-то ранг, можно заметно сократить время работы. Но если тебе нужен полностью отсортированный список, то снова возвращаешься к O(n log n). Да и в худшем случае может выстрелить до O(n²), да и константы не самые лучшие. Так что это быстрое решение для конкретного запроса, а не полная замена сортировке. Если застрял на узком месте – сначала профилируй, потом принимай решение.
Звучит надёжно. Сначала профилирование, потом решим, стоит ли рисковать с этой полу-хитростью. Если нужен только медиану, используй quickselect, а иначе — придерживайся проверенного O(n log n). Следи за константами.