Karmaşıklık karşılaştırma
- Algoritmalar kursu
- Başlangıç
- Ders 7/80
- 4 dk
O(1), O(log n), O(n), O(n log n), O(n^2) karmaşıklıklarını hızdan yavaşa sıralamayı öğrenirsin.
Karmaşıklık karşılaştırma
Big-O değerlerini hızdan yavaşa sıralayalım: O(1) < O(log n) < O(n) < O(n log n) < O(n^2) < O(2^n). O(1) en hızlıdır.
O(1) girdi ne kadar büyük olursa olsun sabit sürede çalışır. O(n^2) ise girdi iki katına çıkınca süre dört katına çıkar.
En kötü ve en iyi durum
Bir algoritmanın en kötü durumu en uzun süren girdidir; en iyi durum en kısa süren girdidir.
Doğrusal aramada hedef ilk elemandaysa en iyi O(1), son elemandaysa en kötü O(n)'dir. Big-O genelde en kötüyü ifade eder.
Uygulama Dizi uzunluğu
count_items(arr) yaz. Eleman sayısını for ile say ve döndür. print(count_items([4, 5, 6])) ile 3 yazdır.
Başlangıç kodu
def count_items(arr):
# Eleman sayÖrnek çözüm
def count_items(arr):
# Eleman say
count = 0
for x in arr:
count = count + 1
return count
print(count_items([4, 5, 6]))Beklenen çıktı
3
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Karmaşıklık karşılaştırma: kavramları eşleştir
| Kavram | Anlamı |
|---|---|
O(1) |
Sabit |
O(n) |
Doğrusal |
O(n^2) |
Karesel |
O(log n) |
Logaritmik |
2 Hangisi en yavaş büyümedir?
- O(1)
- O(log n)
- O(n^2) Doğru cevap
- O(n)
Açıklama: O(n^2) en yavaş büyümedir.
3 En kötü durum
Big-O genelde ____ durumu ifade eder.
Big-O genelde en kötü durumu ifade eder.
Açıklama: en kötü doğru.