Сортировка выбором — различия между версиями
Krotser (обсуждение | вклад) (→Пример) |
Krotser (обсуждение | вклад) (→Пример) |
||
Строка 16: | Строка 16: | ||
== Пример == | == Пример == | ||
+ | [[file:Selection_sort.png|thumb|200px|Пример]] | ||
Пусть дана последовательность из <tex>6</tex> элементов <tex>5, 4, 1, 6, 2, 3</tex>. | Пусть дана последовательность из <tex>6</tex> элементов <tex>5, 4, 1, 6, 2, 3</tex>. | ||
− | Белым фоном обозначен текущий список, зеленым отсортированная часть, а красным минимальный элемент. | + | Белым фоном обозначен текущий список, зеленым отсортированная часть, а красным минимальный элемент. |
− | |||
− | |||
== Реализация == | == Реализация == |
Версия 14:50, 20 мая 2012
Сортировка выбором (англ. selection sort) - это простой алгоритм сортировки со сложностью
, где - количество элементов для сортировки. Сортировка выбором предназначена для решения задачи сортировки (sorting problem).Задача сортировки
На входе последовательность из
чисел.На выходе отсортированная последовательность по неубыванию.
Алгоритм
0. Назовем элементы массива списком.
1. Находим номер минимального элемента из текущего списка.
2. Меняем минимальный элемент с первым элементом списка.
3. Если список пуст, то массив отсортирован. Иначе вернемся к шагу 1, убрав первый элемент из списка.
Пример
Пусть дана последовательность из
элементов .Белым фоном обозначен текущий список, зеленым отсортированная часть, а красным минимальный элемент.
Реализация
// Входной массив x, содержащий n элементов. for (i = 0 to n - 1) int min = i; for (j = i + 1 to n - 1) if (x[j] < x[min]) min = j; swap(x[i], x[min]); // Массив x отсортирован
Ссылки
Литература
- Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгоритмы: построение и анализ, 2-е издание. М.: Издательский дом "Вильямс", 2005. ISBN 5-8459-0857-4