Faktorial iterativ ravishda for operatori yordamida quyidagicha hisoblanishi mumkin: - factorial=1;
- for (int counter=n; counter>=1; counter--)
- factorial * = counter;
- Rekursiv va iterativ yondashuvlarning qiyosiy taxlili:
- 1)ikkalasi ham boshqaruvchi strukturaga asoslangan:iterativ – takrorlanuvchi; rekursiya- tanlov ;
- 2) ikkalasi ham takrorlashni io’z ichiga oladi: iteratsiya-oshkora, rekursiya –funksiyalarni takror chaqirish hisobiga;
- 3) ikkalasi ham tugallash shartini o’z ichiga oladi;
4) ikkalasi ham cheksiz davom etish holatiga tushib qqolishi mumkin; - 4) ikkalasi ham cheksiz davom etish holatiga tushib qqolishi mumkin;
- 5) Har qanday rekursiv echish mumkin bo’lgan masalani iterativ echish mumkin;
- 6) Algoritm va dasturlarni tuzishda rekursiyadan foydalanish vaqtni tejaydi, hajmi kichik bo’ladi, lekin interatsion usulga nisbatan dastur sekinroq ishlaydi hamda ko’proq hotira talab qiladi.
- XULOSA: Rekursiv yondashuv 1) rekursiv yondashuv masala va uning natijasini nisbatan yaxshiroq ifoda etsa; 2) iterativ echim yoqqol ko’rinib turmasa ; 3) yuqori samaradorlik talab etilmasa.
Rekursiv MTga misol: Daraxt tushunchasi - Daraxt-bu chiziqsiz bog’langan ma’lumotlar.
-
- Daraxt o’zining quyidagi belgilari bilan tasniflanadi:
- Daraxtda shunday bitta element borki, unga boshqa elementlardan murojat yo’q. Mazkur elementga daraxt ildizi deyiladi;
- Daraxtda ixtiyoriy elementga chekli sondagi ko’rsatgichlar yordamida murojaat qilish mumkin;
- Daraxtning har bir elementi faqatgina o’zidan oldingi kelgan bitta element bilan bog’langan. Daraxtning har bir tuguni orqaliq yoki terminal (barg) bo’lishi mumkin.
- Daraxt bosqichlari soniga daraxt balandligi deyiladi.
- Tugunlardan chiqayotgan shohlar soni tugundan chiqish darajasi deyiladi.
Do'stlaringiz bilan baham: |