Информатика · 10 класс3 четвертьТема 6ГОСО РК 2026Базовый

Алгоритмы сортировки и поиска: Bubble Sort, Selection Sort и бинарный поиск

Сортировка обменами (пузырек), сортировка выбором, линейный поиск O(n), бинарный поиск O(log n) в упорядоченном массиве, сравнительный анализ эффективности.

Время изучения~60 минтеория + практика
Разделы темы4 разд.пошаговый разбор
Тест темы3 вопр.с мгновенным ответом
СОР / СОЧ3 четвертьдескрипторы ГОСО

Сортировка — это процесс упорядочивания элементов массива по определенному критерию (по возрастанию или по убыванию величины ключа).

Пузырьковая сортировка (Bubble Sort) — самый наглядный и простой алгоритм сортировки:

• Принцип: алгоритм многократно проходит по массиву слева направо. На каждом шаге сравниваются два СОСЕДНИХ элемента: a[j] и a[j+1];

• Если левый элемент больше правого (a[j]>a[j+1]a[j] > a[j+1]), они меняются местами (всплытие большего элемента в конец);

• В результате первого полного прохода самый большой элемент массива гарантированно «всплывает» на самую последнюю позицию (как пузырек воздуха в воде);

• На втором проходе второй по величине элемент встает на предпоследнее место, и так далее за n−1n-1 проход массив оказывается полностью отсортирован.

Схема попарных сравнений алгоритма Bubble Sort

Анимированная модель
Сортировка пузырьком (Bubble Sort): попарный обмен15a[0]42a[1]8a[2]23a[3]4a[4]42 > 8 (Обмен местами!)Временная сложность: Худшая/Средняя O(n²), Лучшая O(n). Сортировка на месте (in-place).
На каждом шаге сравниваются соседние элементы a[j] и a[j+1] с обменом местами при нарушении порядка.
Алгоритм

Bubble Sort (Пузырек)

Элементарная квадратичная сортировка методом попарного сравнения и обмена соседних элементов.
Сложность

O(n²)

Квадратичная временная сложность: при увеличении массива в 10 раз время растет в 100 раз.
Раздел 2 из 4

Сортировка выбором (Selection Sort) работает по другому наглядному принципу:

1. На первом проходе находится минимальный элемент во всем массиве от 0 до n-1;

2. Найденный минимум меняется местами с первым элементом a[0];

3. На втором проходе ищется минимум в оставшейся неотсортированной части от 1 до n-1 и меняется местами с a[1];

4. Процесс повторяется n-1 раз.

Преимущество сортировки выбором перед пузырьковой: число перестановок (обменов) минимально и составляет ровно O(n)O(n), хотя число сравнений остается квадратичным O(n2)O(n^2).

Алгоритм

Selection Sort

Сортировка выбором: последовательный поиск минимума в остатке массива и перестановка в начало.

Поиск — это операция нахождения индекса элемента с заданным значением (ключом) в массиве.

1. Линейный поиск (Linear Search):

Последовательный просмотр всех элементов массива от первого до последнего: for x in a: if x == target: return True. Работает в любом массиве (даже неотсортированном). Время работы в худшем случае прямо пропорционально размеру массива: O(n)O(n). Для массива из 1 миллиарда элементов потребуется 1 миллиард сравнений;

2. Бинарный поиск (Binary Search / Метод половинного деления):

КРИТИЧЕСКОЕ ТРЕБОВАНИЕ: массив ОБЯЗАН быть предварительно ОТСОРТИРОВАН!

Принцип «Угадай число»:

• Смотрим на центральный элемент массива mid;

• Если target == a[mid] — элемент найден!;

• Если target < a[mid] — искомое число может быть только в левой половине (правая половина отбрасывается);

• Если target > a[mid] — искомое число только в правой половине (левая половина отбрасывается);

На каждом шаге область поиска СОКРАЩАЕТСЯ ВДВОЕ!

Схема бинарного деления пространства поиска

Анимированная модель
Двоичное дерево поиска (BST) — поиск ключа 4050Шаг 1: 40 < 50 (влево)30Шаг 2: 40 > 30 (вправо)702040Найдено! O(log n)6080Левое поддерево < Узел < Правое поддерево. Число сравнений: h = log₂ 7 ≈ 3 шага.
На каждом шаге проверяется середина диапазона, отсекая половину оставшихся элементов за время O(log n).
Поиск O(n)

Линейный поиск

Простой перебор по списку, применимый к любым неотсортированным данным.
Поиск O(log n)

Бинарный поиск

Колоссально быстрый поиск в отсортированном массиве методом деления пополам.
Раздел 4 из 4

Временная сложность бинарного поиска составляет O(log⁡2n)O(\log_2 n):

• Для массива из 1 000 элементов бинарный поиск найдет ответ максимум за 10 сравнений (210=10242^{10} = 1024);

• Для массива из 1 000 000 элементов — всего за 20 сравнений (220≈1062^{20} \approx 10^6);

• Для массива из 1 000 000 000 элементов (миллиард!) — всего за 30 сравнений!

Линейный поиск для миллиарда элементов делал бы 1 миллиард операций.

Шаг 1
Установка указателей границ
left = 0, right = len(a) - 1.
Шаг 2
Цикл схождения границ
while left <= right: mid = (left + right) // 2.
Шаг 3
Сравнение и сдвиг
if a[mid] == target: return mid; elif a[mid] < target: left = mid + 1; else: right = mid - 1.
Ваш прогресс по теме25%
Шпаргалка формул10 класс
Объем растрового графического изображения:
I=X⋅Y⋅iI = X \cdot Y \cdot i[бит (байт)]
Количество цветов в палитре растрового изображения:
Kцветов=2iK_{цветов} = 2^i[цветов]
Объем цифрового несжатого аудиофайла (PCM):
I=ν⋅b⋅t⋅kI = \nu \cdot b \cdot t \cdot k[бит]
Временная сложность бинарного поиска:
T(n)=O(log⁡2n)T(n) = O(\log_2 n)[операций]
Следующая тема

Оценка сложности алгоритмов: асимптотическая O-нотация

Перейти к теме →