Uploaded by Agabek Husinov

New Microsoft PowerPoint Presentation

advertisement
“Ajrat va xukmronlik qil” tilidagi algoritmlar
Birlashtirish orqali saralash(Merge Sort)
algoritmi.
Bu algoritm Jon fon Neyman tamonidan 1946
yilda taklif qilingan.
Jon Fon Neyman Vengriyalik olim bo’lib
matematika, kvant fizikasi, funksional analiz,
to’plamlar nazariyasi, ekonomika, informatika
kabi fanlarga munosib hissa qo’shgan.
Bo’lib tashla va hukmronlik qil metodi.
Algoritmlarni qurishning asosiy metodlaridan biri.
Murakkab masalani yechish uchun, uni oddiyroq
bo’laklarga ajratish kerak.
Massivni ham huddi shunday saralash mumkin:
Uni ikkita bo’lakga ajratamiz.
Bo’laklarni alohida saralaymiz.
Saralangan massivlarni birlashtiramiz.
Saralangan massivlarni birlashtirish.
Ikkita saralangan massiv berilgan. Ularni
birlashtirib shunday massiv hosil qilish qilish
kerakki, u yana saralangan bo’lsin.
Xar safar hali ikki massivning hali ko’rilmagan
qismlaridagi birinchi ikki elementni taqqoslaymiz.
Ulardan kichigini olamiz. Bu jarayonni toki bitta
massivning chetigacha chiqmagunga qadar davom
ettiramiz. Ortib qolgan massiv elementlarini esa
to’g’ridan to’g’ri natijaviy massiv iziga berilgan
tartibda joylashtirib qo’yamiz.
Merge Sort va uning ishlash prinsipi
• Merge Sort bu saralanmagan arrayni taqqoslashga asoslangan holda
saralovchi algoritm bo'lib, uning ishlash prinsipida to'liq bo'lib tashla
va hukmronlik qil g'oyasini uchratish mumkin. Demak, merge sort
asosiy ikkita qismdan iborat:
• Berilgan arrayni rekursiv holda teng ikkita qismlarga bo'lib chiqish. Bu
qadam, qism arraylar uzunligi 1 ga (yoki undan kichik) teng bo'lib
qolguncha davom etadi.
• Hosil bo'lgan arraylarni qaytib birlashtirib chiqish va bir vaqtni o'zida
hosil bo'luvchi array saralangan bo'lishini ta'minlash.
Merge sort algoritmi qadamlari
• Merge Sort funksiyasiga array va uning boshlang'ich (left) va oxirgi
nuqtalari (right) beriladi.
• Arraynining o'rtasi hisoblanadi: mid = (left + right)/2. Bu narsa uni
teng ikkiga bo'lish uchun kerak bo'ladi.
• Merge sortni rekursiv holda birinchi va ikkinchi qismlar uchun
chaqiriladi.
• 2- va 3-qismlarda hosil bo'lgan arraylar birlashtirib chiqiladi. (Array
mavzusidagi ikkita arrayni birlashtirish masalasini ko'rib chiqing)
• Algoritm ishlash tezligi O(nlogn) bo'lib tezligi O(n²) bo'lgan oddiy
Bubble, Insertion, Selection Sortlardan ancha tez ishlaydi. O'zi
umuman olganda, taqqoslash asosida ishlaydigan algortmlarning eng
tez ishlash holati O(nlogn) bo'lishi isbotlangan.
• Merge sort turg'un saralash hisoblanadi, ya'ni saralamagan arrayda bir
nechta bir xil elementlar kelgan bo'lsa, ularning tartibi saralangan
massivda ham o'zgarib ketib qolmaydi.
• Algoritm ishlashi uchun xotiradan qo'shimcha O(n) joy talab qiladi.
• Bu Merge sort haqida bilishingiz kerak bo'lgan narsalar edi. Keyingi
darsimizda algoritm implementatiyasiga to'xtalib o'tamiz.
Download