Rekursiv hikoya

Qudratxo'ja Musayev
May 15 · 2 min read
Source: medium.com

“Rekursiya nimaligini tushunish uchun oldin rekursiya nimagligini tushunish kerak” — Stephen Hawking

Rekursiya — bu dasturlashning eng chalg’ituvchi bo’limlaridan, shuning uchun ham uni tushunishga va undan to’g’ri foydalanishga ko’pchilik qiynalishi aniq. Lekin, rekursiya dasturlashning eng murakkab masalalarining asosi hisoblanadi, shuning uchun ham uni yaxshi tushunish va to’g’ri ishlata olish juda ham muhim.

Rekursiya nimaligini tasavvur qilish uchun, oddiy hikoya tarzida misol keltirmoqchiman.

Kichik hikoya…

Abdullajon, yosh va qobiliyatli dasturchi. Bir kuni uning ustozi unga bir oddiy masala berdi. Butun sonlardan iborat array elementlari yig’indisini topish. Lekin, bitta shart buni takrorlanish operatorlaridan foydalanmagan holda amalga oshirish kerak.

Abdullajonni bu masala juda o’ylantirib qo’ydi, chunki u qanday qilib takrorlanishlarsiz buni qilishni bilmasdi. U 3 kun o’ylagandan so’ng quyidagi fikr hayoliga keldi.

Image source: Being The Parent

Abdullajonda [10, 20, 30, 40] array bor va u qo’shish amalini bemalol ishlatishi mumkin.

Abdullajon o’yladi, agar masalni quyidagi ko’rinishda yozsa ham uning natijasi o’zgarmaydi 10 + [20, 30, 40]. Bunda unga o’ng tarafdagi array yig’indisi kerak bo’ladi.

[20, 30, 40] array yig’indisi 20 + [30, 40] bilan bir xil. Huddi shunday ishni [30, 40] array bilan ham qilish mumkin, ya’ni uning yig’indisi 30 + [40] ga teng.

[40] arrayda esa bittagina element bor uning yig’indisi esa tabiiyki o’sha element o’ziga teng.

Demak, Abdullajon [40] array elementlari yig’indisi 40 ga teng ekanligini biladi. Bu bilan u 30 + [40] ni 70 ekanligini, buni bilgan holda esa 20 + [30, 40] = 20 + 70 = 90 ekanligini va shunday qilib yakunda natija 100 ekanligini topishi mumkinligini bildi.

Abdullajon, ustoziga o’z yechimini ko’rsatganda ustozi uni Rekursiya nima ekanligini tushunib yetgani bilan tabrikladi.

Rekursiyaning rasmiy ta’rifi va uni o’rganish nima uchun muhimligi haqida keyingi darsda gaplashamiz.

Maqolani foydali deb hisoblasangiz uni do’stlaringizga ham ulashing!

Manba: @AlgorithmUz telegram kanali

YouTube kanalimiz: Algorithms Uzbekistan

“Eng yaxshi reklama — bu mamnun mijoz tomonidan qilingan reklama” — Philip Kotler

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade