对于一组最坏的情形,A是否有算法A,使A有不同的最坏情形上界和最坏情形下界?此外,对于某些输入集,它应该有不同的最佳情况界,而不等于任何最坏情况下的界。
例如,假设H是一种假设算法,使得H具有最坏情况下界Ο(n^3)、最坏情况下界Ω(n^2)和最佳情况运行时间Θ(n)。
让我知道,上述情况是否真的有意义?
谢谢:)
发布于 2014-09-14 17:03:53
下面是一个不太自然但可能更令人满意的H定义。此函数以相当愚蠢的方式计算输入列表之和的立方体。
def H(lst):
s1 = 0
for x in lst:
s1 += x
if s1 == 0:
return 0
elif len(lst) % 2 == 0:
s2 = 0
for x in lst:
for y in lst:
s2 += x * y
return s1 * s2
else:
s3 = 0
for x in lst:
for y in lst:
for z in lst:
s3 += x * y * z
return s3最好的情形界是Theta(n).形式O(n^k)最紧的最坏情况上界是O(n^3).形式Ω(n^k)的最坏情况下界是Ω(n^2).
然而,请注意,在最坏情况下,任何形式的最紧界都是Θ(f(n)),其中f(2m) = m^2,f(Θ)= m^3。
发布于 2014-09-14 16:41:29
按照你描述的方式,选择任何二次排序算法,比如气泡排序:
O(n^3)。Ω(n^2)。Θ(n),当输入已经排序,并且在启动算法之前用一次传递来检查这一点,或者在这种情况下使用提前终止算法的优化。https://stackoverflow.com/questions/25835500
复制相似问题