2. Постановка задачи
Алгоритм сортировки — это алгоритм для упорядочивания элементов в
массиве.
8 3 4 0 2 1 7 6 9 5
0 1 2 3 4 5 6 7 8 9
3. Алгоритмы сортировки
Квадратичные алгоритмы:
• Сортировка пузырьком
• Сортировка выбором
• Сортировка вставками
Сложность этих алгоритмов (количество сравнений,
производимый во время работы программы, при самом
неудачном входном массиве) имеет порядок
2 n
Поэтому они называются квадратичными
6. Сортировка пузырьком
Наилучший случай: изначальный массив уже отсортирован.
Алгоритм совершает всего один проход по массиву.
0 1 2 3 4 5 6 7 8 9
Наихудший случай: изначальный массив отсортирован в
n(n 1)
обратном порядке. Алгоритм совершает сравнений.
2
9 8 7 6 5 4 3 2 1 0
7. Сортировка выбором
for (int i = 0; i < n - 1; i++)
{
count = A[i]; key=i;
for (int j = i + 1; j < n; j++)
if (A[j] < A[key])
key = j;
if (key != i)
{
A[i] = A[key];
A[key] = count;
}
}
8. Сортировка выбором
n(n 1)
Этот алгоритм совершает сравнений на любом
2
входном массиве. Но, в отличие от алгоритма сортировки
пузырьком, производит всего n - 1 операций обмена.
10. Сортировка вставками
Как и сортировка выбором, этот алгоритм совершает
сравнений.
n(n 1)
2
Алгоритм сортировки вставками может быть значительно
ускорен при работе с большими массивами, если вместо
обычного линейного поиска использовать бинарный