当有人毫无保留地谈论算法的 Big-O 时,他们指的是最佳、平均还是最差的运行情况?关键字是'没有资格'。
最佳答案
Big-O
技术上是上限,因此您需要进行最坏情况分析。
还有Big-Omega
和Big-Theta
,以及预期的情况(如果使用随机化),平均值等。通常如果有人没有指定,您可以只执行 Big-O
,但是如果您能够轻松提供更多信息,那么您也可以。例如Big-Theta
为您提供 Big-O
和其他信息。如果你正在上算法课并需要提供问题分析,那么你会想和你的教授谈谈,看看他们的期望是什么。更有可能的是,他们想看看你能弄清楚多少,所以 without qualification
可能意味着向他们展示你知道或能弄清楚的东西。
如有疑问,作为要求进一步澄清信息的人。通常情况下,你能弄清楚的信息越多越好。通过进一步分析,您可能会发现算法的优势。
例如,使用链表
非常适合插入O(1)
。只要您不需要搜索任何东西,那么它可能是一种可用于算法的理想数据结构。如果您的算法需要进行大量搜索,那么链表
可能不是适合您算法的数据结构。
关于algorithm - 当有人毫无保留地谈论算法的 Big-O 时,他们指的是最好的、平均的还是最坏的运行情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37925400/