Massiv elementlarini saralash algoritmlari, qidiruv algoritmlari
Download 199.37 Kb.
|
1 Massiv elementlarini saralash algoritmlari, qidiruv algoritmlari (2)
- Bu sahifa navigatsiya:
- Saralash algoritmi
- Pufakchali saralash usuli
Massiv elementlarini saralash algoritmlari, qidiruv algoritmlari Saralash - tartiblash (Sorting Algorithms) deb, berilgan obyektlar ketma-ketligini ma’lum mantiqiy tartibda qayta joylashtirish jarayoniga aytiladi. Saralash elementlarni keyinchalik foydalanishga qulay holatga keltiradi. Agar bir sonlar massivini o‘sib borish tartibida saralasak, u holda birinchi element har doim eng katta, oxirgi element esa eng kichik bo‘ladi. 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, ya’ni o‘sib boruvchi qator kabi tartiblaganimizda -50, 0, 8, 23, 100 ko‘rinishiga keladi. Saralash bir necha ko‘rsatkichlarga bog‘liq bo‘lishi ham mumkin. Saralashni amalga oshirishning bir necha usullari ishlab chiqilgan. Saralash asosan ro‘yxat, massiv elementlari ustida amalga oshiriladi. Masalan sizning guruhingizda 20 ta talaba bor. Ularni familiyasini alifbo tartibida saralashni bilsangiz kerak. Shu o‘rinda savol tug‘iladi, operatsion tizimlarda ham saralashdan foydalaniladimi? Albatta ha! Fikrimiz isbotini hozirda keng foydalaniladigan Total Commander dasturi isbotlaydi. Unda bir necha xil saralash mavjud: fayl turi, nomi, o‘zgartirilgan sanasi va o‘lchami. Har birini o‘sish yoki kamayish tartibida saralash mumkin. Agar nomi bo‘yicha saralash lozim bo‘lsa u holda so‘zlar (string - matn) massivi ustida saralash jarayoni amalga oshiriladi. Agarda o‘lchami bo‘yicha saralash lozim bo‘lsa, demak sonlar massivi ustida saralash bajarilishi kerak. Pufakchali saralash usuli Pufakchali saralashda har bir element keyingisi bilan taqqoslanadi. Agar ikkita shunday taqqoslanayotga element kerakli tartibda joylashmagan bo‘lsa, ular o‘rin almashadi. Har bir iteratsiyaning yakunida saralash mezoniga bog‘liq ravishda eng katta/ eng kichik element ro‘yxatning oxiriga o‘tadi. Kod yozishga o‘tishdan oldin, 5 ta sonlardan tashkil topgan massiv elementlarini saralashni vizual misol bilan ko‘rib chiqamiz. Uni o‘sib borish tartibida saralaymiz. Pufakchali saralash Birinchi iteratsiya
Ikkinchi iteratsiya
Uchinchi iteratsiya
To‘rtinchi iteratsiya
Biz pufakchali saralash uchun dastur yozamiz. Ushbu dasturda biz hosil qiladigan funksiya parametrlari berilgan massivga ko‘rsatkich va uning o‘lchamidir. Elementlar o‘rnini almashtirish uchun swap() standart funksiyasidan foydalanamiz. #include using namespace std; void bubbleSort(int list[], int listLength) { while(listLength--) { bool swapped = false; for(int i = 0; i < listLength; i++) { if(list[i] > list[i + 1]) { swap(list[i], list[i + 1]); swapped = true; } } if(swapped == false) break; } } int main() { int list[5] = {3,19,8,0,48}; cout << "Input array ..." << endl; for(int i = 0; i < 5; i++) cout << list[i] << '\t'; cout << endl; bubbleSort(list, 5); cout << "Sorted array ..." << endl; for(int i = 0; i < 5; i++) cout << list[i] << '\t'; cout << endl; } Download 199.37 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling