Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора по САОД.docx
Скачиваний:
40
Добавлен:
28.05.2022
Размер:
1.32 Mб
Скачать
  1. Алгоритмы сортировки. Шелла

Берем количество элементов пополам и от получившегося числа d берем целую часть. Далее сравниваем числа по этому шагу и меняем местами если это необходимо. После этого снова делим d на пополам и снова сравниваем числа по этому шагу. Так пока d не станет 1. Далее идет обычная пузырьковая сортировка.

  1. Алгоритмы сортировки. Турнирная

Элементы делятся попарно. Далее все меньшие элементы “выигрывают” у больших, пока “турнир” не дойдет до “финала”. Найденный наименьший элемент меняется на бесконечность и записываем его первым в массив. Повторяем до тех пор пока элементов не останется. Невыгодна по памяти.

Сложность:O(n(log(n))

  1. Алгоритмы сортировки. Пирамидальная

Мы располагаем элементы в форме пирамиды исходя из их индексов. Соседи каждого элемента высчитываются по формулам 2*i + 1 и 2*i + 2. Далее начинаем сравнивать элементы в пирамиде слева направо снизу вверх. Надо, чтобы самый большой элемент ушел наверх пирамиды.Далее мы меняем его местами с элементом, у которого самый большой индекс и больше его не трогаем. Повторяем алгоритм до тех пор, пока все элементы не будут как бы “заморожены”.

Сложность:O(n(log(n))

  1. Алгоритмы сортировки. Быстрая

Берется опорный элемент посередине. Затем все элементы, что меньше опорного переносятся в левый конец, а все, что больше в правый. Затем выбираем два опорных элемента слева и справа предыдущего опорного. И далее повторяем алгоритм пока всё не отсортируется

Сложность:O(n(log(n))

  1. Методы поиска. Бинарный

https://www.youtube.com/watch?v=y7fSfnOkCTg&t=296s - ссылка на лекцию

Подразумевает отсортированный массив на вход

  • Сначала находим серединный индекс и сравниваем с ним искомый элемент

  • Смотрим, в какую половину попал искомый элемент, и снова делим ее пополам

Повторяем эту операцию до тех пор, пока не найдем искомый элемент, или пока не останется того, что можно поделить

  1. Методы поиска. Бинарное дерево

Может быть как отсортированным, так и нет

Мы сортируем дерево, начиная с первого элемента. Влево закидываем меньшие значения вправо большие.

Когда нам попадает элемент на поиск, мы так же смотрим, больше оно или меньше первого значения. Спускаемся по дереву

Чтобы дерево вышло сбалансированным, ща корневой элемент можно взять средний. За следующие элементы квартили и т.д. (Хорошо применяется к упорядоченным массивам)

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

  1. Методы поиска. Фибоначчиев

Сравниваем элементы, по индексам равным элементам ряда фибоначчи (следующий равен сумме двух предыдущих)

  • Пронумеровываем элементы

  • Сравниваем искомое число с элементами массива, используя шаг в виде чисел фибоначчи

  • Когда находим, между какими элементами находится искомое число, то начинаем поиск в промежутке, тоже с шагов чисел фибоначчи