Пузырьковая сортировка
В этом модуле мы будем рассматривать различные алгоритмы сортировки. Начнем с самого очевидного – пузырьковой сортировки.
Как бы мы руками отсортировали большой список чисел, если бы он лежал перед нами? Первое, что приходит на ум – сравнивать соседние элементы в списке и менять местами, если нужно. Так же работает и пузырьковая сортировка:
void bubble_sort(vector<int> &A) {
int N = A.size();
for (int i = 0; i < N - 1; ++i) {
for (int j = 0; j < N - i - 1; ++j) {
if (A[j] > A[j+1])
swap(A[j], A[j+1]);
}
}
}
Пусть есть массив
В первый проход внутреннего цикла поменяются местами элементы
При этом алгоритм не обходит массив каждый раз. В нашем случае, когда внутренний цикл поставит в конец
Алгоритм сортировки пузырьком сработает за