算法复杂性和 stl::vector
Posted
技术标签:
【中文标题】算法复杂性和 stl::vector【英文标题】:Algorithm complexities and stl::vector 【发布时间】:2014-12-20 03:18:17 【问题描述】:假设:
int arr[10]; // you have O(n ) linear algorithm for search
但是当你使用时:
std::vector<int> V;
问题是:向量的实现背后的搜索算法复杂度是多少?
【问题讨论】:
std::vector
具有恒定时间随机访问,所以是一样的。
std::vector versus std::array in C++的可能重复
【参考方案1】:
在数组中搜索,std::vector
是 O( n )
而不是 O( log n )
O( log n )
只有在array/std::vector
被排序后才会得到。
std::vector
实现不包含任何搜索算法,但是要获得O( log n )
,首先需要对其进行排序,然后执行二进制搜索,这与数组相同。
【讨论】:
@MohsenPahlevanzadeh 我认为我不需要更新我的帖子,恕我直言,你现在已经改变了你的整个问题,无论如何,为了在std::vector
中执行搜索,你可以使用std::find
以上是关于算法复杂性和 stl::vector的主要内容,如果未能解决你的问题,请参考以下文章