Какова временная сложность итерации через std::set
/std::map
? Я считаю, что он линейный по размеру набора/карты, но не настолько уверен. Это указано в стандарте языка?Какова временная сложность итерации через std :: set/std :: map?
ответ
В draft C++11 standard N3337 ответ можно найти в § пункт 24.2.1 8:
Все категории итераторов требуют только те функции, которые реализуема для данной категории в постоянное время (амортизируется).
Поскольку каждая операция на итераторе должна быть постоянная время, перебором n
элементов должен быть O(n)
.
Если map/set реализован как двоичное дерево с родительскими указателями, итерация через все элементы будет посещать каждый узел дерева не более 3 раз. Если реализация представляет собой b-дерево с родительскими указателями, каждый узел будет посещать не более 2 * n + 1 раз, n число элементов в узле. В обоих случаях это означает постоянную среднюю временную сложность для каждого шага итерации. Я не знаю каких-либо других совместимых способов реализации map/set. – WaltK
Я считаю, что он линейный по размеру набора/карты, но не так уверен.
Это верно. Перебор весь набор или карты является O(N)
- 1. Какова временная сложность std :: map
- 2. Какова временная сложность итерации TreeSet?
- 3. Сложность итерации через std :: set
- 4. Какова временная сложность функции std :: deque :: erase?
- 5. Какова сложность std :: tgamma?
- 6. Какова временная сложность string.GetHashCode?
- 7. Какова временная сложность кода?
- 8. Какова временная сложность следующего?
- 9. Какова временная сложность Collection.toArray()?
- 10. Какова временная сложность этого?
- 11. Какова временная сложность цикла?
- 12. Какова временная сложность алгоритма
- 13. Какова временная сложность этой программы?
- 14. Какова временная сложность этой функции NumberComplement?
- 15. Какова временная сложность этого, когда i удваивается на каждой итерации?
- 16. Какова временная сложность этого вложенного цикла?
- 17. Какова временная сложность этого псевдокода?
- 18. Какова временная сложность этого алгоритма
- 19. Какова временная сложность следующего алгоритма?
- 20. Какова временная сложность функции ниже?
- 21. Какова временная сложность этого кода?
- 22. Какова временная сложность моего кода
- 23. Какова временная сложность следующей программы?
- 24. Какова временная сложность моей функции?
- 25. Какова временная сложность следующего уравнения
- 26. Какова временная сложность метода java.util.Collections.sort()?
- 27. Какова временная сложность этого алгоритма?
- 28. Какова временная сложность циклов while?
- 29. Какова временная сложность всего алгоритма?
- 30. Какова временная сложность данного фрагмента?
Итерация всего контейнера всегда будет 'O (n)' _at наименьшей (я полагаю, что действительно глупые реализации могут сделать это _worse_) – Chad
Когда вы говорите «итерацию», что именно вы имеете в виду? Вы пишете цикл while/for с использованием стандартного итератора? Используете ли вы один из стандартных алгоритмов? –