Сортировка выбором — различия между версиями
Krotser (обсуждение | вклад) (→Алгоритм) |
Krotser (обсуждение | вклад) |
||
| Строка 5: | Строка 5: | ||
== Реализация == | == Реализация == | ||
| + | Вариант 1. | ||
// Входной массив x, содержащий n элементов. | // Входной массив x, содержащий n элементов. | ||
| − | for i = 0 to n - | + | for i = 0 to n - 2 |
min = i; | min = i; | ||
for j = i + 1 to n - 1 | for j = i + 1 to n - 1 | ||
| Строка 13: | Строка 14: | ||
swap(x[i], x[min]); | swap(x[i], x[min]); | ||
// Массив x отсортирован | // Массив x отсортирован | ||
| + | |||
| + | Вариант 2. | ||
| + | for i = 0 to n - 2 | ||
| + | for j = i + 1 to n - 1 | ||
| + | if x[i] > x[j] | ||
| + | swap(x[i], x[j]); | ||
== Пример == | == Пример == | ||
Версия 10:52, 7 июня 2012
Сортировка выбором (англ. selection sort) — простой алгоритм сортировки со сложностью , где — количество элементов для сортировки.
Содержание
Алгоритм
На каждом -ом шаге алгоритма находим -ый минимальный элемент и меняем его местами с -ым элементом в массиве. Таким образом будет получен массив отсортированный по неубыванию.
Реализация
Вариант 1.
// Входной массив x, содержащий n элементов.
for i = 0 to n - 2
min = i;
for j = i + 1 to n - 1
if x[j] < x[min]
min = j;
swap(x[i], x[min]);
// Массив x отсортирован
Вариант 2.
for i = 0 to n - 2
for j = i + 1 to n - 1
if x[i] > x[j]
swap(x[i], x[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