我正在学习 Big-O 表示法和算法来提高我的面试技巧,但我不太明白如何获得时间复杂度。
假设我想对以下列表的所有元素求和。
std::vector<int> myList = {1,2,3,4,5} ;
Run Code Online (Sandbox Code Playgroud)
情况1:
int sum = 0;
for (int it: myList)
{
sum += it;
}
Run Code Online (Sandbox Code Playgroud)
案例2:
int sum = std::accumulate(std::begin(myList), std::end(myList), 0);
Run Code Online (Sandbox Code Playgroud)
情况 1 是 O(N),情况 2 显然是 O(1),但我确信这些函数会进行某种迭代,所以问题是 Big-O 表示法是否仅根据该书面代码计算块或所使用的功能。