Skip to content

Latest commit

 

History

History
24 lines (14 loc) · 2.09 KB

File metadata and controls

24 lines (14 loc) · 2.09 KB

Структуры и базы данных

Наклонный текст обозначает дополнительные материалы

Разнообразие представления данных.

Таблицы: когда удобно, а когда нет. Разнообразие структур данных.

О-нотация.

Поиск минимального элемента в массиве; проверка целого числа на простоту. Определение O для алгоритмов с разными операциями: смещение max элемента пузырьком в конец массива. Методы сортировки пузырьком и слияниями. Не всегда стоит использовать «лучшие» в смысле О методы: сортировка маленьких массивов, почти отсортированных массивов, поиск медианы. Р-и NP-задачи.

Деревья

Определение, названия узлов. Бинарное дерево, бинарное дерево поиска. Глубина дерева, сбалансированное дерево.

Бинарное дерево поиска

«Проекция» сбалансированного дерева поиска на упорядоченный массив. Сбоку показана глубина дерева.

Один из популярных алгоритмов балансировки — красно-черные деревья. В C++ они используются в std::map и std::set. Другие интересные деревья: К-мерные дерева, В-деревья.

Хэш-таблицы

Хэш-функции, скорость доступа, расход памяти. Парадокс дней рождений (р(21) = 0,44) и коллизии. Способы разрешения коллизий: цепочка и открытая адресация. В Python dict, set; С ++ Std:: unordered-map / set.