34 страница22 апреля 2026, 21:52

2 ГЛАВА 'Сортировка выбором'

А теперь объединим все, что вы узнали, во втором алгоритме: сортировке выбором. Чтобы освоить этот алгоритм, вы должны понимать, как работают массивы и списки и «О-большое». Допустим, у вас на компьютере записана музыка и для каждого исполнителя хранится счетчик воспроизведений.

0735ac2628f4288608bc8a4b658e8006.avif

Вы хотите отсортировать список по убыванию счетчика воспроизведений, чтобы самые любимые исполнители стояли на первых местах . Как это сделать?

Одно из возможных решений - пройти по списку и найти исполнителя с наибольшим количеством воспроизведений . Этот исполнитель добавляется в новый список.

e56f72b238a6d726f46a7cb9a479139d.avif

Потом то же самое происходит со следующим по количеству воспроизведений исполнителем .

cc38a8f6054229768563b31e6a419ee7.avif

Продолжая действовать так, мы получаем отсортированный список.

d2f7bab0669abe5c8b0695a648732018.avif

А теперь попробуем оценить происходящее с точки зрения теории вычислений и посмотрим, сколько времени будут занимать операции. Напомним, что время О(n) означает, что вы по одному разу обращаетесь к каждому элементу списка. Например, прИ: простом поиске по списку исполнителей каждый исполнитель будет проверен один раз.

c7c5bae1cf613e91f4e3b0081a955f73.avif

Чтобы найти исполнителя с наибольшим значением счетчика воспроизведения, необходимо проверить каждый элемент в списке. Как вы уже видели, это делается за время О(n). Итак, имеется операция, выполняемая за время О(n), и ее необходимо выполнить n раз :

883d0b69e5d5ec4e15620d22cf0d751f.avif

38837d93c42d8c07d8825265ececd4f1.avif

Все это требует времени О(n х n), или O(n^2 ).

Алгоритмы сортировки очень полезны. Например, теперь вы можете отсортировать:

* имена в телефонной книге;
* даты путешествий;
* сообщения электронной почты (от новых к старым).

Алгоритм сортировки выбором легко объясняется, но медленно работает. Быстрая сортировка - эффективный алгоритм сортировки, который выполняется за время О(n log n). Но мы займемся этой темой в следующей главе!

34 страница22 апреля 2026, 21:52

Комментарии

0 / 5000 символов

Форматирование: **жирный**, *курсив*, `код`, списки (- / 1.), ссылки [текст](https://…) и обычные https://… в тексте.

Пока нет комментариев. Будьте первым!