SORU
22 Ocak 2009, PERŞEMBE


Θ(n) ve O(n) arasındaki fark nedir?

Bazen Θ(n) ortasında bir garip Θ sembolü ile, bazen de sadece O(n) görüyorum. Kimse nasıl bu sembol tipini bilir, çünkü yazmak sadece tembellik mi, ya da farklı bir şey ifade ediyor mu?

CEVAP
22 Ocak 2009, PERŞEMBE


Kısa açıklama:

Eğer bir algoritma Θ(g(n)), n (giriş boyutu) büyüdükçe algoritması çalışan zaman g(n) ile doğru orantılı olduğu anlamına gelir.

Eğer bir algoritma O(g(n)), n büyüdükçe algoritmanın çalışma süresi anlamına geliren fazlag(n) ile doğru orantılıdır.

İnsanlar O(g(n)) hakkında konuşmak bile normalde, aslında demek Θ(g(n)) ama teknik olarak bir fark yoktur.

< / ^ hr .

Daha teknik:

O(n) üst sınır temsil eder. Θ(n) sıkı bağlanmak anlamına gelir. É(n) alt sınırı temsil eder.

f(x) (g(x)) ıff f(x) =Θ = O(g(x)) ve f(x) = F(g(x))

Örneğin,birüst Fibonacci dizisi hesaplamak için saf özyinelemeli yaklaşım bağlıdır:

(X) = Fib O(2n)

ama sıkı bağlı

(X) = Θ(F . Fib ^alt>nnereye FnFibonacci dizisi.

ayrıca geçerli bir üst sınır.

Bir algoritma O(n) olduğunu söylediğimizde, bu da O(n . temelde ^sup>2), O(n1000000), O(2n), ama(n) Θ algoritmasıdırdeğilΘ(n2).

F beri aslında, (n) = Θ(g(n)) n, f(n) yeterince büyük değerleri c içinde bağlı olabilir anlamına gelir1g(n) ve c2c Bazı değerleri için g(n)1ve c2yani f büyüme oranı asimptotik g eşittir: g bir alt sınır olabilirveve bir üst f bağlı. Bu doğrudan f de bir alt sınır ve bir üst g bağlı olabilir anlamına gelir. Sonuç olarak

f(x) (g(x)) ıff g(x) = Θ = Θ(f(x))

Benzer şekilde, göstermek için f(n) = Θ(g(n)), o kadar Haritayı g bir üst sınır f (yani f(n) = O(g(n))) ve f Bir alt sınır g (yani f(n) = F(g(n)) bu da aynı şey gibi g(n) = O(f(n))). Kısacası

f(x) (g(x)) ıff f(x) = O(g(x)) ve g(x) = Θ = O(f(x))


Ayrıca küçük-küçük-omega (ω) notlar bir işlev gevşek gevşek üst ve alt sınırları temsil etmektedir.

Özetlemek gerekirse:

f(x) = O(g(x)) (big-oh) anlamına gelir f(x) büyüme oranı. asimptotikdaha az veya eşit içing(x) büyüme oranı.

f(x) = Ω(g(x)) (big-omega) anlamına gelir f(x) büyüme oranı olduğunu asimptotikya da daha büyük eşitg(x) büyüme oranı

f(x) = o(g(x)) (küçük-ah) anlamına gelir f(x) büyüme oranı. asimptotikaz dahabu g(x) büyüme oranı.

f(x) = ω(g(x)) (küçük-omega) anlamına gelir f(x) büyüme oranı olduğunu asimptotikbüyüktürbu g(x) büyüme oranı

f(x) = Θ(g(x)) (teta) anlamına gelir f(x) büyüme oranı. asimptotikeşitbu g(x) büyüme oranı

Daha ayrıntılı bir tartışma için, 16 ** veya Cormen ve ark Algoritmalarına Giriş gibi klasik bir ders kitabı danışabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HowToBasic

    HowToBasic

    8 Aralık 2011
  • martin shervington

    martin sherv

    7 EKİM 2011
  • placeboing

    placeboing

    7 Mart 2006