2014-12-20 104 views
-5

假設:算法的複雜性和STL :: vector的

int arr[10]; // you have O(n) linear algorithm for search 

但是當你使用:

std::vector<int> V; 

的問題是:什麼是算法的複雜搜索矢量的impelentation的背後?

+0

'std :: vector'具有恆定的隨機存取時間,所以它是一樣的。 – kec

+0

可能重複[std :: vector與std :: array在C++](http://stackoverflow.com/questions/4424579/stdvector-versus-stdarray-in-c) – Dinal24

回答

2

在搜索中的陣列和std::vectorO(n)O(log n)

O(log n)將只有當陣列/ std::vector排序來實現。

std::vector實現不包含任何搜索算法,但要獲得O(log n)您首先需要對它進行排序然後執行二分搜索,這與數組也是一樣的。

+0

@MohsenPahlevanzadeh我不認爲我需要更新我的文章,恕我直言,你幾乎已經改變了你現在的整個問題,無論如何,在'std :: vector'中執行搜索,你可以使用[_'std :: find'_](http://en.cppreference .COM/W/CPP /算法/找到) – P0W