Junior
Bir vazifani rekursiya va sikl yordamida bajarish o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
Rekursiya muammo yechish uchun o'zini o'zi chaqiradigan funksiyani ishlatadi va uni kichikroq vazifalarga bo'lib, asosiy holga yetguncha davom etadi. Tsikl esa, ma'lum bir son yoki shart bajarilguncha, kod blokini takrorlaydi.
| Xususiyat | Rekursiya | Tsikl |
|---|---|---|
| Ijro | Funksiyani chaqirish | Takrorlash (Iteratsiya) |
| Xotira | Chaqiriqlar stekini ishlatadi | O'zgaruvchilar bilan hisoblagich/shart ishlatadi |
| O'qilishi | Ba'zi vazifalar uchun qisqaroq bo'lishi mumkin | Ko'pincha to'g'ridan-to'g'ri bo'ladi |
| Performans | Chaqiruvlarning ortiqcha xarajatlari sababli sekinroq bo'lishi mumkin | Odatda samaraliroq bo'ladi |
| Stek to'lib ketishi | Chuqur rekursiyada to'lib ketish xavfi | Xavf yo'q |
C# misolida (faktorial):
Rekursiv implementatsiya:
// Rekursiv faktorial hisoblash
int FactorialRecursive(int n)
{
if (n == 0)
{
return 1; // Asosiy holat
}
return n * FactorialRecursive(n - 1); // Rekursiv chaqiruv
}
Tsikl bilan implementatsiya:
// Tsikl yordamida faktorial hisoblash
int FactorialIterative(int n)
{
int result = 1;
for (int i = 1; i <= n; i++)
{
result *= i;
}
return result;
}