Test gift and xml


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


Download 1.72 Mb.
bet20/34
Sana30.04.2023
Hajmi1.72 Mb.
#1413071
1   ...   16   17   18   19   20   21   22   23   ...   34
Bog'liq
Algaritm umumiy

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:


  • Download 1.72 Mb.

    Do'stlaringiz bilan baham:
1   ...   16   17   18   19   20   21   22   23   ...   34




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling