ALGORITMLAR VA MA’LUMOTLAR
Mundarija Kirish: ...................................................................................................................................................... 2 Raqamli texnologiyalarning zamonaviy dunyosida dasturlash turli xil kompyuterlar, gadjetlar va boshqa elektron qurilmalarning ishlashi uchun asos bo'lib xizmat qiladi. Va algoritmning blok diagrammasini tez va to'g'ri tarzda tuzish qobiliyati bu fanning asosidir. Bunday sxema asboblar tomonidan bajarilishi kerak bo'lgan jarayonlarning grafik modeli. Turli funktsiyalarni bajaradigan alohida funktsiya bloklaridan iborat. Algoritm – maʼlum bir turga oid masalalarni yechishda ishlatiladigan amallarning muayyan tartibda bajarilishi haqidagi aniq qoida (dastur). Kibernetika va matematikaning asosiy tushunchalaridan biri. Oʻrta asrlarda oʻnli sanoq tizimi boʻyicha toʻrt arifmetik amal bajariladigan qoidani Algaritm deb atashgan. "Bu qoidalarni matematikaga 9- asrda al-Xorazmiy tomonidan kiritilgan. Yevropada bunday qoidalar uning tug'ilgan yurtiga nisbatan lotinchalashtirilgan (Algoritmus yoki Algorithmus shaklida "algorizm" deyilgan), keyinchalik "algoritm"ga aylangan" (akademik A. N. Kolmogorov). Fanga "Yevklid algoritmi", "Gʻiyosiddin Koshiy algoritmi", "Laure algoritmi", "Markov algoritmi" deb ataluvchi algoritmlar maʼlum. Algoritm tushunchasi tobora kengayib borib, kibernetikaning nazariy va mantiqiy asosi hisoblangan algoritmlar nazariyasi paydo boʻldi. Oʻzbekiston Respublikasida bir necha ilmiy tadqiqot muassasalari va hisoblash markazlarida Algoritmdan foydalanish sohasida samarali ishlar olib borilmoqda. Masalan Oʻzbekiston Fanlar akademiyasi "Kibernetika" ilmiy ishlab chiqarish birlashmasida, Oʻzbekistondagi barcha universitetlarda, Toshkent davlat texnika universitetida, Oʻzbekiston Respublikasi Makroiqtisod va statistika vazirligi qoshidagi Hisoblash markazi va boshqa muassasalarda olib borilayo’tgan ishlar bunga misol boʻla oladi. ......................................................... 2 I-BOB. Algoritmlar, Graflar va Daraxtlar tushunchasi ............................................................................ 4 1.1 Algoritmni tasvirlash usullari. .......................................................................................................... 4 1.2.Algoritmning asosiy xossalari. .......................................................................................................... 5 1.3 Graflar nazariyasi va uning paydo bo’lishi ....................................................................................... 6 1.4 Daraxtlar haqida tushuncha ............................................................................................................. 8 1.5.Binar daraxtlar .................................................................................................................................. 9 II-BOB. Heap-Sort Algoritmi ................................................................................................................. 10 2.1.Heap-Sort algoritmining yaratilish tarixi ........................................................................................ 10 2.2.Heap-Sort algoritmini tuzilishi ....................................................................................................... 11 2.3 Heap-Sort algoritmini afzalliklari ................................................................................................... 34 2.4 Heap-Sort algoritmini kamchiliklari ............................................................................................... 36 2.5 Heap-Sort algoritmini C++ dasturlash tilida ifodalanishi ............................................................... 37 2.6 Heap-Sort algoritmini Python dasturlash tilida ifodalanishi .......................................................... 40 Xulosa ................................................................................................................................................... 42 Ushbu kurs ishida asosiy mavzu sifatida Heap Sort algoritmi yoritilgan. Dastavval algoritm tushunchasi uning paydo bo’lishi haqida malumot berilgan va yana graflar ikkilik daraxtlar haqida ham malumotlar keltirilgan. Keyin esa asosiy mavzu sifatida Heap Sort algoritmi haqida to’liq malumotlar keltirilgan qachon paydo bo’lgan , kim tomonidan kashf etilgan , algoritmning afzalliklari , kamchiliklari va yana algoritmning dasturlash tillarida qanday tuzilishi ko’rsatib natijalari bilan berilgan. ...................................................................................................................................... 42 Ushbu kurs ishi 48 listdan iborat bo’lib uch bobga bo’lib yoritilgan (Algoritmlar, Graflar va darahtlar, Heap Sort algoritmi) bo’lib unda xulosa va foydalanilgan adabiyotlar qismi mavjud. ........................ 42 Foydalanilgan adabiyotlar .................................................................................................................... 44 Foydalanilgan Internet saytlar ............................................................................................................. 44
Kirish : Raqamli texnologiyalarning zamonaviy dunyosida dasturlash turli xil kompyuterlar, gadjetlar va boshqa elektron qurilmalarning ishlashi uchun asos bo'lib xizmat qiladi. Va algoritmning blok diagrammasini tez va to'g'ri tarzda tuzish qobiliyati bu fanning asosidir. Bunday sxema asboblar tomonidan bajarilishi kerak bo'lgan jarayonlarning grafik modeli. Turli funktsiyalarni bajaradigan alohida funktsiya bloklaridan iborat. Algoritm – ma lum bir turga oid masalalarni yechishdaʼ ishlatiladigan amallarning muayyan tartibda bajarilishi haqidagi aniq qoida (dastur). Kibernetika va matematikaning asosiy tushunchalaridan biri. O rta asrlarda o nli sanoq tizimi bo yicha to rt arifmetik amal ʻ ʻ ʻ ʻ bajariladigan qoidani Algaritm deb atashgan. "Bu qoidalarni matematikaga 9-asrda al-Xorazmiy tomonidan kiritilgan. Yevropada bunday qoidalar uning tug'ilgan yurtiga nisbatan lotinchalashtirilgan (Algoritmus yoki Algorithmus shaklida "algorizm" deyilgan), keyinchalik "algoritm"ga aylangan" (akademik A. N. Kolmogorov). Fanga "Yevklid algoritmi", "G iyosiddin Koshiy algoritmi", "Laure algoritmi", "Markov ʻ algoritmi" deb ataluvchi algoritmlar ma lum. Algoritm tushunchasi ʼ tobora kengayib borib, kibernetikaning nazariy va mantiqiy asosi hisoblangan algoritmlar nazariyasi paydo bo ldi. O zbekiston ʻ ʻ Respublikasida bir necha ilmiy tadqiqot muassasalari va hisoblash markazlarida Algoritmdan foydalanish sohasida samarali ishlar olib borilmoqda. Masalan O zbekiston Fanlar akademiyasi "Kibernetika" ʻ ilmiy ishlab chiqarish birlashmasida, O zbekistondagi barcha ʻ universitetlarda, Toshkent davlat texnika universitetida, O zbekiston ʻ Respublikasi Makroiqtisod va statistika vazirligi qoshidagi Hisoblash markazi va boshqa muassasalarda olib borilayo’tgan ishlar bunga misol bo la oladi. ʻ
I-BOB. Algoritmlar, Graflar va Daraxtlar tushunchasi 1.1 Algoritmni tasvirlash usullari. Biror masalani kompyuterda yechish uchun, avval uning matematik modelini, keyin esa yechish algoritmi va dasturini tuzish kerak bo‘ladi. Ushbu uchlikda algoritm bloki muhim ahamiyatga ega. Endi algoritm tushunchasining ta’rifi va xossalarini bayon qilamiz. Masala yechimini cheklangan qadamlar natijasida hosil qiladigan, oldindan tayinlangan va aniq belgilangan qoidalar yoki buyruqlar ketma-ketligi algoritm deyiladi. Soddaroq qilib aytganda, algoritm bu - oldimizga qo‘yilgan masalani yechish uchun zarur bo‘lgan amallar ketma-ketligidir. Algoritm tuzish - bu dasturlashdir, algoritmni tuzuvchilar esa dasturchilardir. Algoritmlarning eng ko‘p uchraydigan turlari bilan tanishamiz. Algoritmning so‘zlar orqali ifodalanishi. Bu usulda ijrochi uchun beriladigan har bir ko‘rsatma jumlalar, so‘zlar orqali buyruq shaklida beriladi. Algoritmning formulalar bilan ifodalanish usulidan matematika, fizika, kimyo kabi aniq fanlardagi formulalarni o‘rganishda foydalaniladi. Bu usul ba’zan analitik ifodalash deyiladi. Algoritmlarning maxsus geometrik shakllar yordamida ifodalanishida masala yechish jarayoni aniq va ravon tasvirlanadi va bu ko‘rinish blok-sxema deyiladi. Algoritmning jadval ko‘rinishda berilishi . Algoritmning bunday ifodasidan ham ko‘p foydalanamiz. Masalan, maktabda qo‘llanib kelinayo’tgan to‘rt xonali matematik jadvallar yoki turli xil lotereyalar jadvali. Funksiyalarning grafiklarini chizishda ham algoritmlarning qiymatlari jadvali ko‘rinishlaridan foydalanamiz. Bu kabi jadvallardan foydalanish algoritmlari sodda bo‘lgani tufayli ularni o‘zlashtirib olish oson. Yuqorida ko‘rilgan algoritmlarni tasvirlash usullarining asosiy maqsadi, qo‘yilgan masalani yechish uchun zarur bo‘lgan amallar ketma-
ketligining eng qulay holatini aniqlash va shu bilan inson tomonidan dastur yozishni yanada osonlashtirishdan iborat. Aslida, dastur ham algoritmning boshqa bir ko‘rinishi bo‘lib, u insonning kompyuter bilan muloqotini qulayroq amalga oshirish uchun mo‘ljallangan. 1.2.Algoritmning asosiy xossalari. Algoritmning 5 ta asosiy xossasi bor. 1. Diskretlilik (Cheklilik). Bu xossaning mazmuni algoritmlarni doimo chekli qadamlardan iborat qilib bo‘laklash imkoniyati mavjudligida. Ya’ni uni chekli sondagi oddiy ko‘rsatmalar ketma-ketligi shaklida ifodalash mumkin. Agar kuzatilayo’tgan jarayonni chekli qadamlardan iborat qilib qo‘llay olmasak, uni algoritm deb bo‘lmaydi. 2.Tushunarlilik. Biz kundalik hayotimizda berilgan algoritmlar bilan ishlayo’tgan elektron soatlar , mashinalar, dastgohlar, kompyuterlar, turli avtomatik va mexanik qurilmalarni kuzatamiz. Ijrochiga tavsiya etilayo’tgan ko‘rsatmalar uning uchun tushinarli mazmunda bo‘lishi shart, aks holda, ijrochi oddiygina amalni ham bajara olmaydi. Bundan tashqari, ijrochi har qanday amalni bajara olmasligi ham mumkin.Har bir ijrochining bajarishi mumkin bo‘lgan ko‘rsatmalar yoki buyruqlar majmuasi mavjud, u ijrochining ko‘rsatmalar tizimi (sistemasi) deyiladi. Demak, ijrochi uchun berilayo’tgan har bir ko‘rsatma ijrochining ko‘rsatmalar tizimiga mansub bo‘lishi lozim. Ko‘rsatmalarni ijrochining ko‘rsatmalar tizimiga tegishli bo‘ladigan qilib ifodalay olishimiz muhim ahamiyatga ega. Masalan, quyi sinfning a’lochi o‘quvchisi "son kvadratga oshirilsin" degan ko‘rsatmani tushunmasligi natijasida bajara olmaydi, lekin "son o‘zini o‘ziga ko‘paytirilsin" shaklidagi ko‘rsatmani bemalol bajaradi , chunki u ko‘rsatma mazmunidan ko‘paytirish amalini bajarish kerakligini anglaydi. 3. Aniqlik . Ijrochiga berilayo’tgan ko‘rsatmalar aniq va mazmunli bo‘lishi zarur. Chunki ko‘rsatmadagi noaniqliklar mo‘ljaldagi