1.Лёгкая
Что такое взвешенный граф?
- AГраф, в котором рёбер больше, чем вершин
- BГраф, в котором одни вершины тяжелее других, потому что у них больше рёбер
- CГраф, в котором у каждого ребра есть числовое значение, например стоимость или расстояние
- DГраф, хранящийся на диске
2.Лёгкая
В каком порядке обратный обход (postorder) двоичного дерева посещает узлы?
- AЛевое поддерево, затем правое поддерево, затем узел
- BУзел, затем левое поддерево, затем правое поддерево
- CПравое поддерево, затем узел, затем левое поддерево
- DЛевое поддерево, затем узел, затем правое поддерево
3.Лёгкая
Что хранит отображение (map, словарь)?
- AТолько значения в порядке вставки
- BПары ключ–значение с уникальными ключами
- CПары одинаковых ключей
- DЗначения, отсортированные по размеру
4.Средняя
Сколько времени занимает поиск слова длины L в префиксном дереве (trie) с фиксированным алфавитом?
- AO(L × n)
- BO(log n), где n — число слов
- CO(n), где n — число слов
- DO(L), независимо от числа хранимых слов
5.Средняя
Почему обход массива на практике часто гораздо быстрее обхода связного списка той же длины?
- AМассивы требуют меньше инструкций для сравнения значений
- BОбход массива занимает в сумме O(1), а связного списка — O(n)
- CСвязные списки всегда хранят элементы на диске
- DЭлементы массива расположены непрерывно, поэтому хорошо используют кэш процессора
6.Средняя
Зачем нужен сторожевой (фиктивный, sentinel) узел в связном списке?
- AЧтобы хранить число элементов
- BЧтобы список был отсортирован
- CЧтобы упростить код, убрав особые случаи в голове или хвосте
- DЧтобы список не мог вырасти сверх фиксированного максимального числа узлов
7.Сложная
Нужно хранить k наименьших значений из потока n чисел, используя O(k) памяти. Какой подход работает за время O(n log k)?
- AMin-куча, хранящая все n значений, из которой в конце извлекаются k наименьших
- BОчередь FIFO последних k значений
- CMax-куча размера k, корень которой заменяется, когда приходит меньшее значение
- DОтсортированный массив всех n значений
8.Сложная
Почему в хеш-таблице с открытой адресацией удаление часто выполняют с помощью метки «надгробие» (tombstone)?
- AУдалённые ключи нужно хранить вечно из соображений безопасности, поэтому ячейки нельзя использовать повторно
- BОсвобождение ячейки могло бы разорвать последовательность пробирования для других ключей
- CНадгробия ускоряют хеширование
- DЭто делает таблицу отсортированной
Ответы
- 1. C · Граф, в котором у каждого ребра есть числовое значение, например стоимость или расстояние
- 2. A · Левое поддерево, затем правое поддерево, затем узел
- 3. B · Пары ключ–значение с уникальными ключами
- 4. D · O(L), независимо от числа хранимых слов
- 5. D · Элементы массива расположены непрерывно, поэтому хорошо используют кэш процессора
- 6. C · Чтобы упростить код, убрав особые случаи в голове или хвосте
- 7. C · Max-куча размера k, корень которой заменяется, когда приходит меньшее значение
- 8. B · Освобождение ячейки могло бы разорвать последовательность пробирования для других ключей
Полные пошаговые решения: занимайтесь этой темой на examproblems.com.