Сортировка выбором — различия между версиями
Krotser (обсуждение | вклад) (→Реализация) |
(→Реализация) |
||
Строка 7: | Строка 7: | ||
Вариант 1. | Вариант 1. | ||
SelectionSort(a) | SelectionSort(a) | ||
− | for i = 0 to n - | + | for i = 0 to n - 1 |
min = i; | min = i; | ||
− | for j = i + 1 to n | + | for j = i + 1 to n |
if a[j] < a[min] | if a[j] < a[min] | ||
min = j; | min = j; | ||
Строка 16: | Строка 16: | ||
Вариант 2. | Вариант 2. | ||
SelectionSort(a) | SelectionSort(a) | ||
− | for i = 0 to n - | + | for i = 0 to n - 1 |
− | for j = i + 1 to n | + | for j = i + 1 to n |
if a[i] > a[j] | if a[i] > a[j] | ||
swap(a[i], a[j]); | swap(a[i], a[j]); |
Версия 12:56, 2 октября 2014
Сортировка выбором (англ. selection sort) — простой алгоритм сортировки со сложностью
, где — количество элементов для сортировки.Содержание
Алгоритм
На каждом
-ом шаге алгоритма находим -ый минимальный элемент и меняем его местами с -ым элементом в массиве. Таким образом будет получен массив отсортированный по неубыванию.Реализация
Вариант 1.
SelectionSort(a) for i = 0 to n - 1 min = i; for j = i + 1 to n if a[j] < a[min] min = j; swap(a[i], a[min]);
Вариант 2.
SelectionSort(a) for i = 0 to n - 1 for j = i + 1 to n if a[i] > a[j] swap(a[i], a[j]);
Пример
Пусть дана последовательность из
элементов .Массив | Описание шага | |
---|---|---|
Первый проход (текущий массив начинается с первого элемента) | ||
5 4 1 2 3 | Находим первый минимальный элемент — 1 | |
1 4 5 2 3 | Меняем минимальный и первый элементы местами | |
Второй проход (текущий массив начинается со следующего элемента) | ||
1 5 4 2 3 | Находим следующий минимальный элемент — 2 | |
1 2 4 5 3 | Меняем минимальный и второй элементы местами | |
Третий проход (текущий массив начинается со следующего элемента) | ||
1 2 4 5 3 | Находим следующий минимальный элемент — 3 | |
1 2 3 5 4 | Меняем минимальный и третий элементы местами | |
Четвертый проход (текущий массив начинается со следующего элемента) | ||
1 2 3 5 4 | Находим следующий минимальный элемент — 4 | |
1 2 3 4 5 | Меняем минимальный и четвертый элементы местами | |
1 2 3 4 5 | Массив отсортирован |
Ссылки
Литература
- Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгоритмы: построение и анализ, 2-е издание. М.: Издательский дом "Вильямс", 2005. ISBN 5-8459-0857-4