簡體   English   中英

具有不同最壞情況上限、最壞情況下限和最佳情況下界的算法示例?

[英]Example of algorithm which has different worst case upper bound, worst case lower bound and best case bounds?

是否有任何算法 A,使得對於 A 的一組最壞情況實例 S,A 具有不同的最壞情況上限和最壞情況下限? 此外,對於某些輸入集,它應該具有不同的最佳情況邊界,不等於任何最壞情況邊界。

例如,假設 H 是一個假設算法,使得 H 具有最壞情況上限 Ο(n^3)、最壞情況下限 Ω(n^2) 和最佳情況運行時間 Θ(n)。

讓我知道上述情況實際上是否有意義?

謝謝 :)

你描述它的方式,選擇任何二次排序算法,比如冒泡排序:

  • 最壞情況的上限可以說是O(n^3)

  • 最壞情況下界可以說是Ω(n^2)

  • 最好的情況運行時間可以說是Θ(n) ,當輸入已經排序並且您在開始算法之前通過單次檢查它時,或者在這種情況下使用過早終止算法的優化。

這是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(2m+1) = m^3。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM