具有未知值时的时间复杂性

Time complexity while with unknown value

本文关键字:时间复杂性 未知      更新时间:2023-10-16

我有一个大小未知的队列queue<int> q;

这个while循环的时间复杂度是多少?

while(!q.empty())
{
count<<q.front();
q.pop();
}

我不知道q的大小,我怎么知道时间的复杂性?

时间复杂度是由一个变量决定的,在你的情况下,这是q中元素的数量,它被称为n。所以你需要访问每个元素一次,并且只访问一次,所以你得到了O(n(。

std::queue::front

复杂性

恒定

std::queue::pop

复杂性

等于Container::pop_front的复杂性。

std::queue的默认容器是std:dequeue,因此

std::deque::pop_front

复杂性

恒定

想想你重复这些操作多少次,你就会得到你的复杂性。