Сортировка методом выбора в Java - Вопросы
Всего: 5 вопросов
1. Как работает сортировка методом выбора (selection sort)?
Как работает сортировка методом выбора (selection sort)?
На каждом шаге алгоритм находит минимальный элемент в неотсортированной части массива и меняет его местами с первым элементом этой части. Затем процесс повторяется для оставшейся части (без уже отсортированных элементов). С каждым проходом внешнего цикла граница отсортированной части сдвигается вправо, а наименьшие значения одно за другим встают в начало массива. Алгоритм работает на месте (in-place) и не требует дополнительной памяти.
2. Какова временная сложность сортировки выбором и почему она одинакова в лучшем, среднем и худшем случаях?
Какова временная сложность сортировки выбором и почему она одинакова в лучшем, среднем и худшем случаях?
Временная сложность равна O(n²) в лучшем, среднем и худшем случаях. Внешний цикл выполняется n раз, а внутренний в среднем n/2 раз, и это число сравнений не зависит от входных данных. Поэтому даже на уже отсортированном массиве алгоритм выполнит полный набор сравнений — раннего выхода нет. По памяти сложность O(1), так как сортировка идёт на месте.
3. В чём главное практическое преимущество сортировки выбором, связанное с числом обменов?
В чём главное практическое преимущество сортировки выбором, связанное с числом обменов?
Сортировка выбором делает минимум обменов: за весь проход выполняется не более n−1 перестановок, то есть O(n) обменов — по одному за проход внешнего цикла. Это выгодно, когда сама операция обмена дорогая (например, перемещаются большие объекты), даже несмотря на O(n²) сравнений. Кроме того, алгоритм сортирует на месте и не требует дополнительной памяти.
4. Является ли сортировка выбором устойчивой (стабильной)?
Является ли сортировка выбором устойчивой (стабильной)?
В базовой реализации на массиве — нет, сортировка выбором неустойчива. Обмен минимального элемента с текущим может изменить относительный порядок равных значений. Если порядок одинаковых элементов важен, следует выбрать устойчивый алгоритм, например сортировку вставками или слиянием.
5. Чем сортировка выбором отличается от пузырьковой сортировки?
Чем сортировка выбором отличается от пузырьковой сортировки?
Обе имеют сложность O(n²) и делают одинаковое число сравнений, но различаются числом обменов. Пузырьковая на каждом сравнении меняет местами соседние элементы, поэтому обменов может быть до O(n²). Сортировка выбором за один проход находит минимум и делает лишь один обмен — всего O(n) перестановок, что заметно меньше.