Rekursiv jarayonlarni tashkil etish




Download 28,96 Kb.
bet3/5
Sana21.01.2024
Hajmi28,96 Kb.
#142263
1   2   3   4   5
Bog'liq
Vektorlarni tashkil etish-fayllar
dilso\'z, 17141, 2-mavzu Logistika tamoyillari, vazifalari, kontseptsiyalari, ma-fayllar.org, Новейшая история Узбекистана, g\'aznachilik test, ас пушкин7, 8- тема, 904c905561308df8123e757d91daf0b330868b1d
Rekursiv jarayonlarni tashkil etish.
Rekursiv jarayonlarni tashkil etish

Rekursiya


Funksiya o’ziga o’zi to’g’ridan-to’g’ri yoki qandaydir vosita orqali murojat qilish jarayoniga rekursiya va bunday funksiya rekursiv funksiya deyiladi.
Har qanday to’g’ri tuzilgan rekursiya asosini ikkita shart tashkil qiladi. 1.Rekursiya asos sharti 2.Funksiyaning o’ziga o’zlashtirilgan argument bilan murojaat qilish. Rekursiv funksiya qaysidir vaqta kelib o’ziga murojaat qilishni to’xtatishi kerak bo’ladi. Aynan shu narsani rekursiya asos sharti ta’minlab beradi. Rekursiv funksiya qaysidir vaqta kelib o’ziga murojaat qilishni to’xtatishi kerak bo’ladi. Aynan shu narsani rekursiya asos sharti ta’minlab beradi. Keyingi shartda o’zgartirilgan argument deganda, odatda masala boshidagi argumentdan kichikroq argument tushiniladi (ba’zi hollarda kattaroq bo’lishi mumkin). Bu narsa ham juda muhim, chunki bir xil argument bilan qayta-qayta murojaat qilinganda yoki argument notog’ri o’zgartirilganda funksiya o’zini cheksiz marta chaqirishiga to’g’ri kelib qoladi. Nima uchun rekursiya kerak Nima uchun rekursiya kerak Aslini olganda, har qanday rekursiv ishlangan masalani iterativ usulda ishlash mumkin va buning aksi ham to’g’ri.Buning ustiga rekursiv yechim har doim xotiradan qo’shimcha joy talab qiladi. Shunday ekan, nima uchun unda rekursiya kerak? Albatta, buning yetarlicha sabablari bor: Aksariyat tuzilmalar va algoritmlarni rekursiyasiz tasavvur qilib bo’lmaydi. Aksariyat tuzilmalar va algoritmlarni rekursiyasiz tasavvur qilib bo’lmaydi. Tree, Graph, Heap, QuickSortMergeSort, … Bu ro’yhatni juda uzoq davom ettirish mumkin. Ayniqsa, murakkab tuzilmalar bo’lgan Tree va Graphlarda rekursiya har qadamda uchraydi. Dasturchilikni esa ularsiz tasavvur qilib bo’lmaydi, bu esa o’z o’rnida rekursiya qanchalik muhimligini belgilab beradi. Yana bir qiziq ma’lumot, shunday dasturlash tillari borki ularda umuman takrorlanish operatorlari yo’q va bu borada butunlay rekursiyaga tayanadi. Haskell va Erlang shular jumlasidan. Funktsiya to‘g‘ri rekursiv deyilаdi, аgаr tаnаsidа o‘zigа murоjааt bo‘lsа. Funktsiya bоshqа funktsiyani chаqirsа vа bu funktsiya o‘z nаvbаtidа birinchi funksiyani chaqirsa, bundаy funktsiya nisbiy rekursiv deyilаdi. Funktsiya to‘g‘ri rekursiv deyilаdi, аgаr tаnаsidа o‘zigа murоjааt bo‘lsа. Funktsiya bоshqа funktsiyani chаqirsа vа bu funktsiya o‘z nаvbаtidа birinchi funksiyani chaqirsa, bundаy funktsiya nisbiy rekursiv deyilаdi. Rekursiyani qo‘llаshgа klаssik misоllаr – dаrаjаgа оshirish vа sоn fаktоriаlini hisoblаsh. Bu misоllаr rekursiyani tushuntirish qulаy bo‘lgаni uchun klаssik hisoblаnаdi. Fibonachi sonini hisoblash algaritmini ko’rib chiqamiz; Natija: n=1 0 n=2 1 n=3 1 n=4 2 n=5 3 Sonning factorialini topish algaritmini ko’rib chiqamiz; Natija:
1!=1
2!=2
3!=6
4!=24
5!=120
6!=720
Misol. Rekursiv funksiyadan foydalangan holda ikkita sondan raqamlari yig‘indisi katta bo‘lgan sonni topuvchi dastur tuzing. Natija: 4 9 9
Statik ma’lumotlar tuzilmasi vaqt o’tishi bilan o’z o’lchamini o’zgartirmaydi. Biz har doim dastur kodidagi statik ma’lumotlar tuzilmasiga qarab ularning o’lchamini bilishimiz mumkin. Bunday ma’lumotlarga teskari ravishda dinamik ma’lumotlar tuzilmasi mavjud bo’lib, bunda dastur bajarilishi davomida dinamik ma’lumotlar tuzilmasi o’lchamini o’zgartirishi mumkin. Dinamik ma’lumotlar tuzilmasi – bu qandaydir bir qonuniyatga asoslanib shakllangan, lekin elementlari soni, o’zaro joylashuvi va o’zaro aloqasi dastur bajarilishi davomida shu qonuniyat asosida dinamik o’zgaruvchan bo’lgan ma’lumotlar tuzilmasidir. Dinamik ma’lumotlar tuzilmasi 1-rasmdagidek klassifikatsiyalanadi. 1-rasm. Dinamik ma’lumotlar tuzilmasi klassifikatsiyasi Dasturlarda dinamik ma’lumotlar tuzilmasidan ko’pincha chiziqli ro’yhatlar, steklar, navbatlar va binar daraxtlar ishlatiladi. Bu tuzilmalar bir-biridan elementlarning bog’lanish usuli va ular ustida bajarilishi mumkin bo’lgan amallari bilan farqlanadi. Dinamik tuzilmalar massiv va yozuvdan farqli ravishda operativ xotirada ketma-ket sohalarda joylashmaydi. Ixtiyoriy dinamik tuzilma elementi 2 ta maydondan tashkil topadi: tuzilma tashkil etilishiga sabab bo’layotgan informatsion maydon va elementlarning o’zaro aloqasini ta’minlovchi ko‘rsatkichli maydon.

Download 28,96 Kb.
1   2   3   4   5




Download 28,96 Kb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Rekursiv jarayonlarni tashkil etish

Download 28,96 Kb.