Skip to content

Latest commit

 

History

History
44 lines (33 loc) · 1.95 KB

File metadata and controls

44 lines (33 loc) · 1.95 KB

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


Допустим есть массив состоящий из неотсортированных однородных элементов.

156
141
25
94
.
.
.
61
111

Наша задача отсортировать элементы по убыванию, решение, пройтись по списку и найти самое большое значение, и добавить его в новый список, после удаляем его из изначального списка сокращая его на один элемент, далее повторяем процесс.

Чтобы проверить каждый элемент в списке требуется пройтись по всем элементам списка, то есть время прохода по всем элементам равно O(n)

Также мы проходим каждым элементом по всем элементам так образ получаем время работы O( n * n ) или O большое от n в квадрате.

Из-за того что при каждой итерации мы удаляем один выбранный элемент, то после каждой итерации массив сокращается на 1 число, так что было бы вернее записать этот алгоритм следующим образом.

n-1, n-2, n-3 . . . 2, 1

В среднем проверяется список из 1/2 * n элементов. Так что должно было получиться O( n * 1/2 * n) но в подсчете O большого такие остатки как 1/2 игнорируются.

Этот Алгоритм сортировки O(n * n) считается медленным.