STL中valarray::min
和valarray::max
函数的时间复杂度是多少?
此外,什么是查找各种其他STL组件的时间/空间复杂性的良好来源?
答案 0 :(得分:2)
O(N)
这些功能不会缓存其结果。
在任何stl参考中搜索标题为“Complexity”的部分,例如
http://www.cplusplus.com/reference/algorithm/max_element/
或
http://www.sgi.com/tech/stl/min_element.html
http://www.sgi.com/tech/stl/max_element.html
时间复杂度规范是几乎所有方法和功能的STL规范的一部分。
通常不指定记忆复杂性。
这些[低级别]功能有充分的理由不缓存最小/最大结果:
如果你想快速获得经常修改的容器的最小/最大元素,你可以
(1)自己保持最小值/最大值
(2)使用堆或树而不是向量
答案 1 :(得分:0)
检查STL组件复杂性的好地方:http://www.sgi.com/tech/stl/