一尘不染

将不同的例程加在一起时的大O

algorithm

可以说,我有一个例程,它扫描3个项目的整个列表,并根据大小进行排序,然后b搜索该列表的n次。扫描时间为O(n)次,我将其称为O(n
log(n)),n次bsearch为O(n log(n))。如果我们将所有3个加在一起,这是否仅是3个最坏的情况-n
log(n)值,或者语义是否允许增加时间?

可以肯定的是,现在我输入的答案是n log(n),但是现在我也可以确认输入了它:)


阅读 188

收藏
2020-07-28

共1个答案

一尘不染

对于Big-O来说,这的确是最差的。

原因是您的函数的时间复杂度为

(n) => 3n + nlogn + nlogn

这是

(n) => 3n + 2nlogn

此函数在 上方 受3nlogn限制,因此在O(n log n)中。

您可以选择任何常数。我刚巧选择3,因为它是一个很好的渐近上限。

2020-07-28