Ma’lumotlar tuzilmasi va algoritmlar fanining maqsad va vazifasini izohlab bering


Rekursiv algoritmlarga misollar keltiring (faktorialni hisoblash, fibonachchi sonlari va h.k.)



Yüklə 1,56 Mb.
səhifə19/32
tarix05.10.2023
ölçüsü1,56 Mb.
#152400
1   ...   15   16   17   18   19   20   21   22   ...   32
MTA oraliq javoblai

41. Rekursiv algoritmlarga misollar keltiring (faktorialni hisoblash, fibonachchi sonlari va h.k.)

  • Agar protsedura yoki funktsiyaning o’zida o’ziga murojaat bo’lsa rekursiv deb ataladi.

    • Misol uchun, faktorialni hisoblash funktsiyasini quyidagicha yozish mumkin:

int Factorial (int n)
{
if (n<=0) return 1; //1 ni qaytarish
else
return n*Factorial(n-1); //rekursiv chaqirish
}

  • Agar n > 0 bo’lsa, Factorial funktsiyasi o’zini o’zi chaqiradi. Bu masalani yechish uchun rekursiv protsedurani (funktsiyani emas) qo’llash mumkin.

  • Bunda ssilka bilan berilgan parametr orqali (protsedurani e’lon qilishda uning nomi oldiga ssilka & belgisi qo’yilgan) qo’llaniladi. Protsedurani rekursiv chaqirishda bu qiymat o’zgaradi.

void Factorial (int n, int &fact)
{
if (n==0) fact=1; //rekursiya yakunlanadi
else {
Factorial(n-1, fact); //(n-1)! ni rekursiv hisoblash
fact*=n; //n!=n*(n-1)!
}
}

  • Funktsiyadan farqli ravishda protsedura ssilka orqali berilgan parametr yordamida bir nechta qiymatlarni qaytarish mumkin.

  • Yangi rekursiv chaqiruvni amalga oshirishda kompyuter quyidagilarni bajaradi:

    • ushbu bosqichdagi hisoblashlar holatini eslab qoladi.

    • stek (asosan xotira sohasi)da lokal o’zgaruvchilarning yangi to’plamini hosil qiladi (chunki, joriy chaqiruvda o’zgaruvchini yo’qotib qo’ymaslik kerak).

    • har bir chaqiruvda yangi xotira sarflanadi va protsedura chaqiruvi hamda protseduraga qaytish uchun vaqt yo’qotiladi.


42. Rekursiya chuqurligi nima, rekursiv va iteratsion algoritmlarning o’zaro farqi?

  • Shuning uchun ham rekursiyani qo’llashda quyidagiga alohida e’tibor berish kerak:


  • Yüklə 1,56 Mb.

    Dostları ilə paylaş:
1   ...   15   16   17   18   19   20   21   22   ...   32




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin