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?
Iteratsiya chaqiruvlariga nisbatan rekursiya yaratish quyidagi kamchiliklarga ega:
berilgan algoritm uchun rekursiv chaqiruvlar iteratsiyaga ko'ra sekinroq ishlaydi. Bu metodlarning takroriy chaqiruvlariga tizim resurslarni qo'shimcha sarflashi bilan bog'liq;
metodlarni qayta-qayta chaqirish tizimi stekining toshib ketishiga olib kelishi mumkin. Bunday holda, CLR muhiti tegishli istisno vaziyatni keltirib chiqaradi. Shuning uchun, rekursiv metodni ishlab chiqishda parametrlar va lokal o'zgaruvchilar sonini minimal e`lon qilish juda muhim ahamiyatga ega.
Do'stlaringiz bilan baham: |