Пузырьковая сортировка

Содержание

Слайд 2

Алгоритмы сортировки: что, зачем и почему?

Алгоритм = пошаговая инструкция, которая дополняет код,

Алгоритмы сортировки: что, зачем и почему? Алгоритм = пошаговая инструкция, которая дополняет
прописывается для объяснения значения последнего и произведения компьютером определенного действия. Чаще всего применяются алгоритмы сортировки данных. Последние помогают компьютеру должным образом подойти к работе с информацией.
Сортировка данных – это то, что будет преследовать программиста от начала учебы и до… Но так как она постоянно нужна и в повседневной жизни, эту подкатегорию алгоритмов следует бояться меньше всего.

Слайд 3

Нам часто требуется что-либо сортировать согласно определенным признакам, но в программировании не

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

Слайд 4

Самые популярные алгоритмы сортировки:
Пузырьковая.
Перемешиванием.
Вставками.
Быстрая.
Расчёской.
Пирамидальная.
Выбором.

Самые популярные алгоритмы сортировки: Пузырьковая. Перемешиванием. Вставками. Быстрая. Расчёской. Пирамидальная. Выбором.

Слайд 5

Каждый из них идеален для своей задачи: один – для обработки крупных

Каждый из них идеален для своей задачи: один – для обработки крупных
массивов, другие – для изучения алгоритмических принципов, а третьи – для оптимизации по числу циклов и другим признакам.

Слайд 6

Почему без знания алгоритмов не пройти собеседование?

Рекрутер или руководитель, который проводит собеседование

Почему без знания алгоритмов не пройти собеседование? Рекрутер или руководитель, который проводит
почти всегда дает задачу по алгоритмам на собеседовании. Это необходимо для оценки знаний базиса. Чаще всего она имеет условие, где:
Специально допущена ошибка, например, предлагается решить задачу сложным и времязатратным способом, что необходимо для оценки умения отстаивать свое мнение и внимательно подходить к задачам.

Слайд 7

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

Просят использовать один определенный алгоритм, что важно для оценки качества написания кода.
выбрать любой алгоритм для решения задачи, что позволяет оценить уровень понимания специфики алгоритмов.
При неправильном ответе вы возможно и пройдете собеседование, но только если покажете, что у вас есть общие знания алгоритмов и к другим навыкам нет вопросов.

Слайд 8

По факту для сортировки по возрастанию достаточно вызвать функцию сортировку Python sorted(),

По факту для сортировки по возрастанию достаточно вызвать функцию сортировку Python sorted(),
которая вернёт новый отсортированный список:
Также можно использовать метод список list.sort(), который изменяет исходный список (и возвращает None во избежание путаницы). Обычно это не так удобно, как использование sorted(), но если вам не нужен исходный список, то так будет намного эффективнее.

Слайд 9

Пример:
В Python вернуть None и не вернуть ничего — одно и то

Пример: В Python вернуть None и не вернуть ничего — одно и
же.
Ещё одно отличие заключается в том, что метод list.sort() определён только для списков, в то время как sorted() работает со всеми итерируемыми объектами:

Слайд 10

Пример:

Пример:

Слайд 11

Сортировка пузырьком - это метод сортировки массивов и списков путем последовательного сравнения

Сортировка пузырьком - это метод сортировки массивов и списков путем последовательного сравнения
и обмена соседних элементов, если предшествующий оказывается больше последующего.
В процессе выполнения данного алгоритма элементы с большими значениями оказываются в конце списка, а элементы с меньшими значениями постепенно перемещаются по направлению к началу списка. Образно говоря, тяжелые элементы падают на дно, а легкие медленно всплывают подобно пузырькам воздуха.
В сортировке методом пузырька количество итераций внешнего цикла определяется длинной списка минус единица, так как когда второй элемент становится на свое место, то первый уже однозначно минимальный и находится на своем месте.

Слайд 12

Количество итераций внутреннего цикла зависит от номера итерации внешнего цикла, так как

Количество итераций внутреннего цикла зависит от номера итерации внешнего цикла, так как
конец списка уже отсортирован, и выполнять проход по этим элементам смысла нет.
Пусть имеется список [6, 12, 4, 3, 8].
За первую итерацию внешнего цикла число 12 переместится в конец. Для этого потребуется 4 сравнения во внутреннем цикле:

Слайд 13

Результат:
За вторую итерацию внешнего цикла число 8 переместиться на предпоследнее место. Для

Результат: За вторую итерацию внешнего цикла число 8 переместиться на предпоследнее место.
этого потребуется 3 сравнения:

Слайд 14

На третьей итерации внешнего цикла исключаются два последних элемента. Количество итераций внутреннего

На третьей итерации внешнего цикла исключаются два последних элемента. Количество итераций внутреннего
цикла равно двум:
На четвертой итерации внешнего цикла осталось сравнить только первые два элемента, поэтому количество итераций внутреннего равно единице:

Слайд 15

Финалочка:

Финалочка:

Слайд 16

Псевдокод пузырьковой сортировки:

Псевдокод пузырьковой сортировки:

Слайд 17

Описание:
Итак, в псевдокоде мы видим, что мы объявляем функцию с именем bubble_sort,

Описание: Итак, в псевдокоде мы видим, что мы объявляем функцию с именем
которая передала единственный объект списка A.
Затем мы входим в цикл while, где мы сначала устанавливаем переменной swapped = false.
Мы будем использовать эту переменную в конце каждой итерации цикла while, чтобы посмотреть и проверить – выполнили ли мы какие-либо замены внутри нашего цикла for. Если нет – мы выполнили сортировку.
Цикл for сам увеличивает переменную длины входного списка A. На каждой итерации цикла for мы проверяем и смотрим, не отсортированы ли элементы с индексом i и i-1.

Слайд 18

Если это так, мы меняем их местами, и устанавливаем в нашей переменной

Если это так, мы меняем их местами, и устанавливаем в нашей переменной
swapped значение True. В противном случае мы переходим к следующей итерации цикла for.
В первой итерации цикла for мы проверяем элемент с нулевым индексом на элемент с индексом -1. Мы меняем их местами, если элемент с нулевым индексом больше, чем элемент с индексом -1.
После цикла for мы проверяем – выполняем ли мы какие-нибудь подкачки. (swapped = True).
Имя файла: Пузырьковая-сортировка.pptx
Количество просмотров: 38
Количество скачиваний: 0