Сортировка по выбору – это алгоритм сортировки, в частности сортировка сравнения на месте, который используется для сортировки массива целых чисел. Алгоритм делит входной список на две части, отсортированную и несортированную. Алгоритм ищет самый большой элемент в несортированном разделе и меняет его местами с последней позицией в несортированном разделе.
Классификация алгоритмов
Следующая таблица содержит информацию об анализе алгоритма сортировки выборки. Он определяет наихудший, средний и наилучший случаи с точки зрения временной сложности, а также наихудший случай с точки зрения пространственной сложности.
Алгоритм Сортировки | Класс |
Массив | Структура данных |
Ω (n2) | Временная сложность: Лучший |
I (n2) | Временная сложность: Средняя |
O(n2) | Временная сложность: Наихудший |
O(1) | Сложность пространства: Наихудший |
Пожалуйста, используйте следующую ссылку для объяснения обозначения Big-O и того, что такое хорошо, справедливо и плохо.
Сортировка выбора На языке Java
public final class SelectionSort { public void sort(int[] collection) { if (collection != null) { selectionSort(collection); } else { throw new IllegalArgumentException("Input paramenter for array to sort is null."); } } private void selectionSort(int[] collection) { int arrayLength = collection.length; for (int unsortIndex = arrayLength - 1; unsortIndex > 0; unsortIndex--) { int largest = 0; for (int i = 1; i <= unsortIndex; i++) { if (collection[i] > collection[largest]) { largest = i; } } swap(collection, largest, unsortIndex); } } private void swap(int[] collection, int x, int y) { int temp = collection[x]; collection[x] = collection[y]; collection[y] = temp; } }
Пример кода (GitHub)
Подробную информацию о классе сортировки выбора можно просмотреть здесь . Подробную информацию о тестовом классе JUnit Selection Sort можно просмотреть здесь .
Вывод
Алгоритм сортировки по выбору является частью более крупной группы алгоритмов сортировки. Обучение на основе опыта – вот причина, по которой я создал этот пост о реализации алгоритма сортировки выбора в Java. Я многое узнал о том, как другие решали алгоритм сортировки выборки на других языках, включая различные реализации в Java.
Сообщение Алгоритм сортировки выборки В Java появилось впервые на Code 2 Bits .
Оригинал: “https://dev.to/code2bits/selection-sort-algorithm-in-java-331a”