Занятие 1 Пузырьковая сортировка Для этого курса вам понадобятся базовые знания алгебры Пузырьковая сортировка это простейшая процедура сортировки В этом контексте сортировка означает упорядочивание масссива данных в виде целых чисел Сначала представьте массив с элементами, которые мы хотим сортировать Мы используем пустой массив для примера Алгоритм пузырьковой сортировки описывается следующим образом Мы сравниваем первые два элемента массива и, если они не подряд , мы меняем их позиции продолжаем делать это для соседних элементов массива до последнего элемента На этом этапе последний элемент является самым большим в массиве далее мы повторяем процедуру для всех пар, кроме последнего до тех пор пока масссив полностью не отсортирован Теперь заполним массив данными, чтобы показать работу алгоритма Начнем с сравнения 5 с 9 Поскольку 5 меньше 9, мы ничего не делаем Затем мы сравниваем 9 с 2 Поскольку 9 больше 2, мы меняем их местами Делаем то же самое, пока 9, который является самым большим элементом, не достигнет последней позиции Вот почему алгоритм получил название пузырьковой сортировки Когда 9 достигает последней позиции мы продолжаем со следующими шагами алгоритма и сортируем массив Псевдокод для алгоритма Пузырьковой сортировки довольно прост Всего эти 4 строки что вы видите Пузырьковый алгоритм медленный Чтобы показать вам, что мы имеем в виду, мы рассчитаем его производительность Предположим, у нас есть массив N элементов В первом проходе мы выполняем n-1 сравнений чтобы перейти к самому большому предмету в конце массива В следующем шаге мы выполним n-2 сравнения и продолжая таким же образом, мы получаем следующую сумму: Количество сравнений = (n-1) + (n-2) + ... + 1 по операциям указанная сумма равна n (n-1) / 2, что равно (n ^ 2)/2 - n / 2 При больших значениях n ^ 2 превалирует над другими членами и мы говорим, что пузырьковый алгоритм имеет сложность порядка n ^ 2