Θ(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
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 F
nFibonacci 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 gelir
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 gelirf(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 gelirf(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 gelirf(x)
büyüme oranı. asimptotikaz dahabug(x)
büyüme oranı.
f(x) = ω(g(x))
(küçük-omega) anlamına gelirf(x)
büyüme oranı olduğunu asimptotikbüyüktürbug(x)
büyüme oranı
f(x) = Θ(g(x))
(teta) anlamına gelirf(x)
büyüme oranı. asimptotikeşitbug(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.
Aramak ve uygulamak arasındaki fark ne...
@Staticmethod ve @Python classmethod a...
Match_parent ve fill_parent arasındaki...
Varchar ve nvarchar arasındaki fark ne...
Arayüz ve soyut sınıf arasındaki fark ...