11.2. Заключительный тест Повторим и закрепим всё, что мы узнали из курса 1. Что оценивает O-нотация? Скорость выполнения алгоритма в худшем случае в зависимости от количества входных данных. Скорость выполнения алгоритма в лучшем случае в зависимости от количества входных данных. Среднюю скорость выполнения алгоритма в зависимости от количества входных данных. 2. Какая из сложностей ниже самая большая? O(logn). O(n²). O(n!). 3. Оцените алгоритмическую сложность следующего кода: return Object .entries(object) .reduce( (accumulator, [key, vaulue]) => ({ ...accumulator, [key]: value }), {} ); O(n). O(n²). 4. Каким должен быть массив, чтобы можно было искать быстрее, чем за O(n)? Одномерным. Любым. Отсортированным. 5. При помощи какого концепта алгоритмы «Разделяй и властвуй» бьют задачи на более мелкие? Рекурсия. Мемоизация. Кеширование. 6. Какая минимальная сложность у сортировок, которые используют операции сравнения? O(n). O(nlogn). O(n²). 7. Какими методами обрабатываются коллизии в хеш-таблицах? Метод цепочек. Метод открытой адресации. Метод развёртывания. 8. К каким структурам относится стек? FIFO. LIFO. 9. Чем динамическое программирование отличается от «Разделяй и властвуй»? В динамическом программировании решение одной подзадачи может зависеть от многих, а в «Разделяй и властвуй» — наоборот. Только в динамическом программировании можно кешировать результаты прошлых вычислений. В «Разделяй и властвуй» решение одной подзадачи может зависеть от многих, а в задачах динамического программирования — наоборот. Закончить