2. Rekursiv metod (funksiya )
Rekursiya – metodning qayta ishlash jarayoninida o`zini – o`zi chaqirishi. Metodning chaqirilishi ba'zi shartlarga ko`ra bajarilishi to`xtatilishi kerak. Aks holda, xotira toshib ketadi va dastur kerakli natijani hisoblamasdan "to'xtaydi".
Rekursiv metod– bu metodning o`zini o`zi chqairishi. Rekursiv metodda uning nomi bilan bir xil metod chaqiradi.
Rekursiv metodni chaqirish qanday ishlaydi?
Agar metod o'zini-o'zi chaqirsa, unda xotirada quyidagi jarayonlar sodir bo'ladi:
tizim stekida yangi lokal o'zgaruvchilar va parametrlar uchun xotira ajratiladi;
metodning dasturiy kodi birinchi navbatda yangi lokal o'zgaruvchilar va parametrlar bilan amalga oshiriladi. Ushbu lokal o'zgaruvchilar va parametrlar yangi boshlang'ich qiymatlarni oladi. Metodning dasturiy kodida nusxa ko'chirilmaydi;
recursiv metoddan qaytish (return operatori) jarayonida eski lokal o'zgaruvchilar va parametrlari metodning qaytish nuqtasidagi qiymatlari tiklanadi.
Dasturlarda rekursiyadan foydalanishning afzalliklari qanday?
Rekursiya har doim iteratsiya bilan taqqoslanadi. Ko'pgina vazifalar uchun rekursiya quyidagi afzalliklarni beradi:
recursiv funksiya ni chaqirganda, lokal o'zgaruvchining vaqtinchalik qiymatlarini qo'shimcha ravishda saqlab qolish shart emas. Kompliyator recursiv funksiya kodini shunday quradiki unda lokal o'zgaruvchilarning vaqtinchalik qiymatlari avtomatik ravishda har bir rekursiya chaqiruviga mos saqlanadi;
ba'zi hollarda rekursiv algoritmlar iterativlarga qaraganda soddalashgan va aniqroq ko'rinadi. Buning sababi, oraliq natijalarni eslab qolish uchun iteratsion algoritmni amalga oshirilishda harakat o`rnini aniqlash uchun qo'shimcha o'zgaruvchilarni kiritish kerak.
Dasturlarda rekursiyadan foydalanishning kamchiliklari qanday?
Do'stlaringiz bilan baham: |