Сортировка выбором

Материал из Algocode wiki
Версия от 11:47, 13 сентября 2019; Глеб (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Алгоритм

Одним из самых понятных и придумываемых способов отсортировать массив является сортировка выбором минимума (или максимума).

Чтобы отсортировать массив, нужно просто $N$ раз выбрать минимум среди еще неотсортированных чисел. То есть на $i$-ом шаге ищется минимум на отрезке $[i, n - 1]$, и этот минимум меняется с $i$-ым элементом, теперь отрезок $[0, i]$ отсортирован.

Реализация

1 for (i = 0; i < n - 1; i++) {
2     for (j = i + 1; j < n; j++) {
3         if (a[i] > a[j]) {
4             swap(a[j], a[i]);
5         }
6     }
7 }

Красивая визуализация (вкладка SEL)

Оценка времени работы

Наш алгоритм каждый раз ищет максимальное число из оставшихся, всего чисел в массиве - $n$, следовательно искать максимум мы будем $n$ раз, также каждый раз у нас останется не более $n$ чисел, тогде асимптотика составляет $O(N \cdot N) = O(N^2)$



Автор конспекта: Полина Романченко

По всем вопросам пишите в telegram @Romanchenko


Автор конспекта: Глеб Лобанов

По всем вопросам пишите в telegram @glebodin