算法复杂性和 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::vectorO( n ) 而不是 O( log n )

O( log n )只有在array/std::vector被排序后才会得到。

std::vector 实现不包含任何搜索算法,但是要获得O( log n ),首先需要对其进行排序,然后执行二进制搜索,这与数组相同。

【讨论】:

@MohsenPahlevanzadeh 我认为我不需要更新我的帖子,恕我直言,你现在已经改变了你的整个问题,无论如何,为了在std::vector 中执行搜索,你可以使用std::find

以上是关于算法复杂性和 stl::vector的主要内容,如果未能解决你的问题,请参考以下文章

STL:Vector 例题:UVA 101(积木问题) The Blocks Problem

C++标准模板库(STL)——vector常见用法详解

STL vector的使用基础

STL vector

STL vector用法介绍

STL vector