4-Amaliy ishi.
Mavzu: “Ajrat va xukmronlik qil” prinsipi bo‘yicha ishlaydigan algoritmlarni
loyihalash
Maqsad: Talabalar “Ajrat va xukmronlik qil” prinsipi bo‘yicha
ishlaydigan algoritmlarni
loyihalash o‘rganishi, Quicksort va MergeSort saralash algoritmlarini qo’llashni o‘rganishi, bu
usullar haqida bilim va ko‘nikmalarga ega bo‘lishi hamda mustaqil masalalar yechishi va shu
masalaga mos algoritmlar qura olishi kerak.
Amaliy ishini bajarish uchun zarur jihozlar. Zarur dasturiy ta’minot (C++
dasturlash tili
kompilyatori, matn muharriri) o‘rnatilgan personal kompyuter, Amali ish ishini bajarish bo‘yicha
(ushbu) uslubiy ko‘rsatma
Zarur nazariy ma’lumotlar.
Ushbu amaliy ishi turli ma’lumotlarni saralashga mo‘ljallangan
algoritmlarni ishlab chiqish,
psevdokod va blok-sxema ko‘rinishida ifodalash, dasturlashtirish
va testlash malakalarini
egallashga bag‘ishlangan. Ushbu amaliy ishlari ma’lumotlarni saralash usullaridan foydalanish
talab etiladi.
Quiksort – tez saralash algoritmi
Bu algoritm “bo‘lib ol va egalik qil” tamoyilining yaqqol misolidir. Bu algotirm rekursiv
bo‘lib, o‘rtacha
N*log
2
N ta solishtirish natijasida saralaydi. Algoritm berilgan massivni saralash
uchun uni 2 taga bo‘lib oladi. Bo‘lib olish uchun ixtiyoriy elementni tanlab undan 2 ta qismga
ajratiladi. Lekin o‘rtadagi
elementni tanlab, massivning teng yarmidan 2 ga ajratgan ma’qul.
Tanlangan kalit elementga nisbatan chapdagi va o‘ngdagi har bir element solishtiriladi. Kalit
elementdan kichiklar chapga, kattalar o‘ng tomonga o‘tkaziladi (6.3-rasm). Endi massivning har
ikkala tomonida xuddi yuqoridagi amallar takrorlanadi. Ya’ni bu oraliqlarning o‘rtasidagi
elementlar kalit sifatida olinadi va h.k.
Misol uchun rasmdagi massivni saralash algoritmini ko‘rib chiqamiz.
1.
Oraliq sifatida 0 dan
n-1 gacha bo‘lgan massivning barcha elementlarini olamiz.
2. Oraliq o‘rtasidagi kalit elementni tanlaymiz, ya’ni