Массив длиной 0 или 1 уже отсортирован, поэтому это базовый случай рекурсии. Проверка <= 1 останавливает и пустые подмассивы, которые возникают при разбиении вокруг pivot.
Почему в функции quicksort условие len(arr) <= 1?
Массив длиной 0 или 1 уже отсортирован, поэтому это базовый случай рекурсии. Проверка <= 1 останавливает и пустые подмассивы, которые возникают при разбиении вокруг pivot.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Массив длиной 0 или 1 уже отсортирован, поэтому это базовый случай рекурсии. Проверка <= 1 останавливает и пустые подмассивы, которые возникают при разбиении вокруг pivot.
Если проверять только len(arr) == 1, пустой массив может попасть в код выбора опорного элемента и вызвать ошибку либо некорректную рекурсию. Базовый случай также гарантирует, что дальнейшее разбиение не нужно. Для корректной quicksort важно, чтобы рекурсивные подзадачи уменьшались, включая набор одинаковых элементов. Одной проверки длины недостаточно, если pivot случайно остаётся в неизменившейся рекурсивной части.