Junior
Rekursiv xulq nima?
sobes.tech AI
AIdan javob
Kod yoki funksiyalarni bajarish, ular o'zlarini chaqiradigan.
Asosiy elementlar:
- Asosiy holat: Rekursiya to'xtaydigan shart. Bu bo'lmasa, rekursiya cheksiz davom etadi.
- Rekursiv holat: Funksiyaning o'zini chaqiradigan qismi, odatda, o'zgartirilgan argument bilan.
Misol (faktorialni hisoblash):
func factorial(_ n: Int) -> Int {
// Asosiy holat
if n <= 1 {
return 1
}
// Rekursiv holat
return n * factorial(n - 1)
}
// Chaqirish misoli
let result = factorial(5) // 120
Afzalliklar:
- O'ziga o'xshash tuzilishga ega muammolar uchun elegant yechim (masalan, daraxtlarni yurish).
- Ba'zi hollarda ko'proq o'qilishi oson kod.
Kamchiliklar:
- Ko'p xotira iste'mol qilishi mumkin (chaqiruvlar yoyi).
- Juda chuqur rekursiyada yoyi to'lib ketishi mumkin.
- Ba'zan iterativ yechimlardan kamroq samarali bo'lishi mumkin.