Ma’lumotlarni saralash usullari
1Ma’lumotlarni saralash usullari MUNDARIJA KIRISH ............................................................................................................ 2 I Bob. Saralash usulining nazariy asoslari. ................................................ 3 1.Tuzilma elementlarini saralash ............................................................... 3 1.qat'iy (to'g'ridan-to'g'ri) usullar; .................................................................... 3 2.Saralash tushunchasi va uning vazifasi ................................................. 4 3. Ma lumotlarni tartiblash usullariʼ ........................................................... 5 4. Guruhlash turlari .................................................................................... 6 1. Maqsad va vazifalarga qarab ....................................................................... 6 2. Guruhlash belgilari soniga qarab ................................................................. 6 3. Manbaiga qarab ........................................................................................... 6 4. Tipologik guruhlash .................................................................................... 6 5. Analitik guruhlash ....................................................................................... 7 6. Tuzilmaviy guruhlash .................................................................................. 7 7. Oddiy guruhlash .......................................................................................... 7 8. Murakkab guruhlash .................................................................................... 7 9. Birlamchi guruhlash .................................................................................... 7 10. Ikkilamchi guruhlash ................................................................................. 7 1. tipologik; .................................................................................................... 7 2. analitik; ....................................................................................................... 7 2.Selection sort ........................................................................................ 10 3.Insertion sort ......................................................................................... 10 4.Merge sort ............................................................................................. 11 5.Quicksort .............................................................................................. 12 6. Heapsort ............................................................................................... 13 7.Radixsort .............................................................................................. 15 XULOSA ...................................................................................................... 20 ADABIYOTLAR RO’YXATI ...................................................................... 21 ILOVALAR ................................................................................................... 22 ILOVA 1. Quicksort usuli kodi ............................................................... 22 ILOVA 2. Megesort usuli kodi ................................................................ 23 i = 0; .............................................................................................................. 23 j = 0; .............................................................................................................. 23 k = left; ......................................................................................................... 23
2 KIRISH Ishdan maqsad: Ushbu laboratoriya ishining maqsadi talabalar qanday saralash usullari va algoritmlari mavjudligini va ularning samaradorliklarini baholashni o'rganishlari kerak. Shu asosda saralash usullarini qiyosiy tahlil qilishlari va ularga oid dasturlar tuzishni o'zlashtirishlari kerak. Qo'yilgan masala: Talabalar topshiriq variantiga mos saralash usuli yordamida masalani yechish dasturini yaratish ko'nikmasiga ega bo'lishlari kerak. Ish tartibi: 1. Tajriba ishi nazariy ma'lumotlarini o'rganish; 2. Berilgan topshiriqniтп algoritmini ishlab chiqish 3. C++ dasturlash muhitida dasturni yaratish; 4. Natijalarni tekshirish; 5. Hisobotni tayyorlash va topshirish
3I Bob. Saralash usulining nazariy asoslari. 1.Tuzilma elementlarini saralash Ma'lumotlarni kompyuterda qayta ishlashda elementning informatsion maydoni va uning mashina xotirasida joylashishini bilish zarur. Shu maqsadda ma'lumotlarni saralash amalga oshiriladi. Demak, saralash – bu ma'lumotlarni kalitlari bo'yicha doimiy ko'rinishda mashina xotirasida joylashtirishdan iborat. Bu yerda doimiylik ma'lumotlarni massivda kalitlari bo'yicha o'sishi tartibida berilishi tushuniladi. Ma'lumotlarga qayta ishlov berilayotganda ma'lumotning informatsion maydonini hamda uning mashinada joylashishini (adresini) bilish zarur. Saralashning ikkita turi mavjud: ichki va tashqi: 1.ichki saralash bu operativ xotiradagi saralash; 2.tashqi saralash – tashqi xotirada saralash. Agar saralanayotgan yozuvlar xotirada katta hajmni egallasa, u holda ularni almashtirishlar katta sarf (vaqt va xotira ma'nosida) talab qiladi. Ushbu sarfni kamaytirish maqsadida, saralash kalitlar adresi jadvalida amalga oshiriladi. Bunda faqatgina ma'lumot ko'rsatkichlari almashtirilib, massiv o'z joyida qoladi. Bu usul adreslar jadvalini saralash usuli deyiladi. Saralanayotganda bir xil kalitlar uchrashi mumkin, bu holda saralangandan keyin bir xil kalitlilar boshlang'ich tartibda qanday joylashgan bo'lsa, shu tartibda qoldirilishi maqsadga muvofiq bo'ladi (Bir xil kalitlilar o'zlariga nisbatan). Bunday usulga turg'un saralash deyiladi. Saralash samaradorligini bir necha mezonlar bo'yicha baholash mumkin: 1. saralashga ketgan vaqt; 2. saralash uchun talab qilingan operativ xotira; 3. dasturni ishlab chiqishga ketgan vaqt. Birinchi mezonni qarab chiqaylik. Saralash bajarilganda taqqoslashlar yoki almashtirishlar sonini hisoblash mumkin. Faraz qilaylik, N = 0,01n2 + 10n – taqqoslashlar soni. Agar n < 1000 bo'lsa, u holda ikkinchi qo'shiluvchi katta, aks holda ya'ni, n > 1000 bo'lsa, birinchi qo'shiluvchi katta bo'ladi. Demak, kichkina n larda taqqoslashlar soni n ga teng bo'ladi, katta n larda esa n2 ga teng bo'ladi. Saralashda taqqoslashlar soni quyidagi oraliqlarda bo'ladi: dan gacha; – ideal holatda. Saralashning quyidagicha usullari bor: 1.qat'iy (to'g'ridan-to'g'ri) usullar; 2.yaxshilangan usullar. Qat'iy usullarning afzalliklarini ko'rib chiqaylik: 1. Bilamizki, dasturlarning o'zlari ham xotirada joy egallaydi. To'g'ridan-to'g'ri saralash usullarining dasturlari qisqa bo'lib, ular tushunishga oson. 2. To'g'ridan-to'g'ri saralash usullari orqali saralash tamoyillarining asosiy xususiyatlarini tushuntirish qulay.
43. Murakkablashtirilgan usullarda uncha ko'p amallarni bajarish talab qilinmasada, ushbu amallarning o'zlari ham ancha murakkabdir. Garchi yetarlicha katta n larda ulardan foydalanish tavsiya etilmasada, kichik n larda mazkur usullar tezroq ishlaydi. Shu joyni o'zida qat'iy usullarni ishlash tamoyillariga ko'ra 3 ta toifaga bo'lish mumkin: 1. To'g'ridan-to'g'ri qo'shish usuli (by insertion); 2. To'g'ridan-to'g'ri tanlash usuli (by selection); 3. To'g'ridan-to'g'ri almashtirish usuli (by exchange). 2.Saralash tushunchasi va uning vazifasi Saralash – bu berilgan to‘plam elementlarini biror bir tartibda (o‘sish yoki kamayish) joylashtirish jarayonidir. Saralash (inglizcha sorting - tasniflash, tartiblash) - tanlangan mezonga qarab biror narsani ketma-ket joylashtirish yoki guruhlarga bo'lish. Saralash– bu massiv elementlarini tartiblash (o’sish, kamayish, oxirgi raqami, bo’luvchilari bo’yicha, …) Saralash deb, berilgan obyektlar ketma-ketligini ma`lum mantiqiy tartibda qayta joylashtirish jarayoniga aytiladi. Saralash bir necha ko`rsatkichlarga bog`liq bo`lishi mumkin. Ma'lumotlarni saralash - uni qandaydir atributga ko'ra tartibga solishdir. Saralashdagi qiyinchiliklar quyidagi hollarda mavjud bo’ladi: ma'lumotlar massivlari katta bo’lganda - minglab, o'nlab va yuz minglab elementlar; ma'lumotlarga murojaat qilish qiyin bo'lishi mumkin (masalan, ular ma’lumotlar oqimi bo’lganda); kompyuterning imkoniyatlari yetarli emas va dasturlash tiliga kiritilganidan ko'ra tejamkorroq algoritmlar kerak. Bunday hollarda saralashning ixtisoslashtirilgan algoritmlarini tanlash kerak, zarurat bo’lsa ularni masalaga qarab optimallashtirish mumkin. Saralashdan maqsad - tartiblangan to‘plamda kerakli elementni topishni osonlashtirishdan iborat. dasturlarni translyasiya qilishda; ma’lumotlar majmuasini tashqi xotirada tashkil qilishda; kutubxonalar, kataloglar, ma’lumotlar bazasini yaratishda va boshqalar. Saralash bir necha ko`rsatkichlarga bog`liq bo`lishi mumkin. Misol uchun maktab jurnalida o'quvchilar familiyasi alifbo tartibiga ko'ra saralangan bo'ladi. Masalan bizga sonlar qatori berilgan: 8, 23, 0, -50, 100 Bu qatorni kichigidan kattasiga qarab yoki kattasidan kichigiga qarab saralashimiz mumkin. Bu saralashni amalga oshirish jarayoni Saralash algoritmi deyiladi. Saralash jarayoni taqqoslashga asoslangan jarayon hisoblanadi. Yuqoridagi sonli qatorni kichigidan kattasiga qarab tartiblaganimizda -50, 0, 8, 23, 100 ko'rinishiga keladi. Biz buni qanday amalga oshirdik. Bunda har xil usuldan foydalanish mumkin va mana shu