Taban durum seçimi
- Algoritmalar kursu
- Başlangıç
- Ders 47/80
- 4 dk
0! = 1 taban durumunun nasıl çalıştığını ve hatalı taban durumun tehlikesini öğrenirsin.
Taban durum seçimi
Faktöryelde taban durum 0! = 1'dir. Bu, recursion'ın durmasını sağlar. Yanlış taban durum sonsuz çağrıya neden olur.
1! = 1 de taban durum olarak kullanılabilir. Bu durumda özyineleme adımı 1'den başlar ve bir çağrı azalır.
Karmaşıklık
Recursive faktöryelin karmaşıklığı O(n)'dir: her çağrı n'yi bir azaltır, toplam n çağrı yapılır. Fibonacci'den farklı olarak tekrar yoktur.
Bellek karmaşıklığı da O(n)'dir çünkü her çağrı yığına bir çerçeve ekler. İteratif çözüm O(1) bellek kullanır.
Uygulama Faktöryel çağrısı
factorial_call(n) yaz. n=1 ise 1, değilse n * factorial_call(n-1). print(factorial_call(4)) ile 24 yazdır.
Başlangıç kodu
def factorial_call(n):
# Faktöryel çağırÖrnek çözüm
def factorial_call(n):
# Faktöryel çağır
if n == 1:
return 1
return n * factorial_call(n - 1)
print(factorial_call(4))Beklenen çıktı
24
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Taban durum seçimi: kavramları eşleştir
| Kavram | Anlamı |
|---|---|
0! = 1 |
Taban değer |
n! = n*(n-1)! |
Özyineleme adımı |
Zaman |
O(n) süre |
Bellek |
O(n) yığın |
2 Recursive faktöryelin zaman karmaşıklığı nedir?
- O(1)
- O(n^2)
- O(n) Doğru cevap
- O(2^n)
Açıklama: O(n)'dir, n çağrı yapılır.
3 Bellek karmaşıklığı
Recursive faktöryel bellek karmaşıklığı ____'dir.
Recursive faktöryel bellek karmaşıklığı O(n)'dir.
Açıklama: O(n) doğru.