foundation
Алгоритмы сортировки
Сравнивайте simple, divide-and-conquer, heap-based и counting sorts по сложности и ограничениям.
Выбор sorting зависит от размера input, stability, memory, key range и почти отсортированности данных. Bubble и selection sort в основном учебные; insertion sort хорош для tiny или nearly sorted data; merge sort stable, но требует extra memory; quicksort fast on average; heap sort контролирует memory; counting sort требует bounded key range.
Компромисс: сравните время, память и сложность реализации до выбора структуры или паттерна.
На интервью: Интервьюеры могут не просить кодить каждый sort, но ожидают сравнение complexity, stability и объяснение, почему language built-in sort часто лучше в product code.
Типовые ошибки: Quicksort worst case может быть O(n squared). Counting sort не comparison sort и может тратить memory. Stable ordering важен, когда equal keys несут secondary data.
Чеклист:
- Упомяните time и space.
- Назовите stability.
- Проверьте key range.
- Предпочитайте built-in sort, если реализация не является задачей.