1.Лёгкая
В чём главное отличие статического массива от динамического?
- AДинамический массив хранит свои элементы в связанных узлах, поэтому может расти по одному элементу
- BСтатический массив может хранить только числа
- CДинамический массив может расти, переходя в больший блок памяти
- DСтатический массив даёт более медленный доступ по индексу
2.Лёгкая
Где находится наименьший элемент двоичной min-кучи?
- AВ корне
- BВ последней позиции массива
- CВ каком-то листе, который придётся искать
- DВ самом левом листе
3.Лёгкая
Что определяет двоичное дерево?
- AКаждый узел хранит двоичное число
- BВ дереве ровно два уровня
- CУ каждого узла ровно два потомка
- DУ каждого узла не более двух потомков
4.Средняя
У двоичного дерева корень 1 с левым потомком 2 и правым потомком 3; у узла 2 потомки 4 (левый) и 5 (правый). Каков обратный обход (postorder)?
- A5 4 3 2 1
- B4 2 5 1 3
- C4 5 2 3 1
- D1 2 4 5 3
5.Средняя
В двоичной min-куче, хранящейся в массиве (индексация с 0), потомки узла с индексом i находятся на позициях:
- A2i + 1 и 2i + 2
- Bi + 1 и i + 2
- C2i и 2i + 1
- Di/2 и i/2 + 1
6.Средняя
Какова временная сложность поиска ключа в сбалансированном двоичном дереве поиска?
- AO(n log n)
- BO(n)
- CO(log n)
- DO(1)
7.Сложная
Как определить, есть ли цикл в односвязном списке, используя O(1) дополнительной памяти?
- AХранить каждый посещённый узел в хеш-множестве
- BДвигать один указатель на один шаг, а другой на два и проверять, встретятся ли они
- CОтсортировать список и искать повторы
- DСчитать узлы, пока счёт не превысит поле длины списка
8.Сложная
Зачем серверу выбирать хеш-функцию случайно из универсального семейства?
- AЧтобы хеш-таблица была отсортирована
- BЧтобы не нужно было увеличивать таблицу
- CЧтобы гарантировать, что никакие два ключа никогда не столкнутся, какие бы ключи ни присылал атакующий
- DЧтобы сделать крайне маловероятным, что атакующий подберёт много ключей с одинаковым хешем
Ответы
- 1. C · Динамический массив может расти, переходя в больший блок памяти
- 2. A · В корне
- 3. D · У каждого узла не более двух потомков
- 4. C · 4 5 2 3 1
- 5. A · 2i + 1 и 2i + 2
- 6. C · O(log n)
- 7. B · Двигать один указатель на один шаг, а другой на два и проверять, встретятся ли они
- 8. D · Чтобы сделать крайне маловероятным, что атакующий подберёт много ключей с одинаковым хешем
Полные пошаговые решения: занимайтесь этой темой на examproblems.com.