Tam olarak büyük Ө gösterim neyi temsil ediyor?
Gerçekten büyük O, büyük Omega ve büyük Teta gösterimi arasındaki farklar hakkında karıştı.
Büyük O üst sınır ve büyük Omega alt sınır olduğunu biliyorum, ama tam olarak büyük Ө (teta) neyi temsil eder?
Anlamına geldiğini okudumsıkı bağlıama ne anlama geliyor bu?
CEVAP
İlk big O, big Theta ve büyük Omega ne anlamamızı sağlar. Fonksiyonları sets tüm bunlar.
Büyük O üst büyük Omega verme olsa 45**, alt sınır veriyor. Büyük Teta verir.
Ө(f(n))
her şeyi de O(f(n))
, ama tersi değil.
T(n)
Omega(f(n))
O(f(n))
ve eğer Ө(f(n))
olduğu söyleniyor.
Terminoloji ayarlarӨ(f(n))
O(f(n))
Omega(f(n))
intersection
Örneğin, birleştirme sıralama en kötü durumda her iki O(n*log(n))
Omega(n*log(n))
- ve böylece de Ө(n*log(n))
ama aynı zamanda O(n^2)
beri n^2
asimptotik olarak "daha büyük" daha. Ancak, öyledeğilAlgoritma Beri Ө(n^2)
, Omega(n^2)
değildir.
Biraz daha derin açıklama matematik
O(n)
asimptotik üst sınır. Eğer T(n)
O(f(n))
olup olmadığı belli n0
, orada sabit olduğu anlamına gelir T(n) <= C * f(n)
C
. Öte yandan, büyük Omega diyor T(n) >= C2 * f(n))
) C2
bir sabit vardır.
Karıştırmayın!
En kötü, en iyi ve ortalama vaka analizi ile karıştırılmamalıdır: gösterimde olan üç (Omega, O, Teta)değilen ilgili, en kötü ve ortalama durumda algoritma analizi. Bunlardan her biri her analiz için uygulanabilir.
Genellikle algoritmaların karmaşıklığı analiz etmek için kullanınörnek sıralamak yukarıda birleştirme gibi). Dediğimizde "O(f(n))
", yani "en kötü altında algoritma karmaşıklığı . Algoritma ^sup>1vaka analizi O(f(n))
" - - terazi "(ya da, daha kötüsü resmen değil) işlevi 26**." benzer bir anlamı vardır
Neden bir algoritma asimptotik bağlı ister misin?
Bunun için pek çok nedeni vardır, ama çoğu önemli olduğuna inanıyorum:
- Çok zor tespit edilebilirkesinkarmaşıklık fonksiyonu, böylece biz "uzlaşma" büyük-Ç bilgilendirici yeterli teorik olan büyük Teta gösterimleri,/.
- Ops tam sayısını daplatform bağımlı. Eğer bir vektör varsa, örneğin, (liste) 16 sayı. Operasyon ne kadar sürer? Cevap: duruma göre değişir. Bazı İşlemciler diğer istenmeyen bir özellik olan cevabı farklı uygulamaları ve farklı makineler arasında çok değişir mi, don, süre vektör eklemeler izin verir. Büyük-O gösterimi ancak çok daha makineleri ve uygulamaları arasında sabittir.
Bu sorunu göstermek için, aşağıdaki grafiklere bir göz atalım:
f(n) = 2*n
"f(n) = n
daha." daha kötü olduğu açıktır Ama aradaki fark, diğer işlev olarak oldukça köklü değildir. f(n)=logn
hızlı bir şekilde diğer fonksiyonları çok daha geri almak olduğunu görüyoruz, ve f(n) = n^2
çok hızlı bir şekilde diğerlerinden daha yüksek oluyor.
- Yukarıdaki sebeplerden dolayı, biz "" sabit faktörler (grafik örnek 2*) ve büyük-O sadece gösterimde. böylece görmezden
Yukarıdaki örnekte, f(n)=n, f(n)=2*n
O(n)
ve Omega(n)
- ve böylece de Theta(n)
olacak.
Diğer yandan, - f(n)=logn
olacak O(n)
("iyi" den f(n)=n
), ama olmayacak Omega(n)
- ve böylece de uygun DEĞİL Theta(n)
.
Symetrically, f(n)=n^2
O(n)
ve böylece Omega(n)
, ama olur da Theta(n)
DEĞİLDİR.
1Genellikle, her zaman değil. analiz sınıfı (en kötü, ortalama ve en iyi) eksik olduğunda, biz gerçekten demeken kötü durum.
Bir tür _t (alt-t) izledi neyi temsil ...
@ Sembolü objective-c neyi temsil ediy...
Sayıları bir sürümü genellikle neyi te...
Sarı renklendirme "yanlış hizalan...
neyi nasıl takip ediyor olan bana göst...