Birlashtirib saralash algoritmlari
Birlashtirib saralash algoritmlari.
Birlashtirib saralash (Merge sort) – tartiblashning tezkor bajariladigan algoritmlaridan biri. Ushbu tartiblash “bo’lib tashla va hukmronlik qil” prinsipining yaxshi namunasidir. Birinchidan, vazifa bir nechta kichik topshiriqlarga bo'linadi. Keyin ushbu vazifalar rekursiv chaqiruv yordamida yoki to'g'ridan-to'g'ri ularning hajmi yetarlicha kichik bo'lsa hal qilinadi. Nihoyat, ularning y echimlari birlashtirilib, asl muammoning echimi olinadi.
• Algoritmning bajarilishi. • • Saralash muammosini hal qilish uchun uch bosqich quyidagicha bo’ladi: • Saralanadigan massiv taxminan bir xil o'lchamdagi ikki qismga bo'linadi; • Olingan qismlarning har biri alohida saralanadi (masalan, xuddi shu algoritm bo'yicha saralanadi); • Yarim kattalikdagi ikkita saralangan massivlar birlashtiriladi.
• “ Bo’lib t ashla v a huk mronlik qil” st rat egiy asi • “ Bo’lib tashla va hukmronlik qil” strategiyasi yordamida muammoni qismiy jarayonlarga ajratamiz. Har bir kichik topshiriq uchun yechimga ega bo'lsak, pastki vazifalarni yechish uchun pastki vazifalardan olingan natijalarni "birlashtiramiz". • Aytaylik, biz A massivni saralashni xohladik. Kichik vazifa bu p indeksidan boshlanib, r indeksida tugagan, A [p..r] bilan belgilangan kichik qismini ajratishdir. • “ Bo’lib t ashlash” • Agar q qiymati p va r orasida bo'lsa, biz A [p..r] massivni ikkita A [p..q] va A [q + 1, r] kichik massivlarga bo'lishimiz mumkin .
• “ Huk mronlik qilish” . • “ Hukmronlik qilish” bosqichida biz ikkala A [p..q] va A [q + 1, r] kichik massivlarni saralashga harakat qilamiz. Agar hali ham boshlang'ich darajaga yetib bormagan bo'lsak, yana ikkala quyi qismni ajratib, ularni saralashga harakat qilamiz. • Birlashtirish • Birlashtirish bosqichi asosiy pog'onaga yetib borganida va biz A [p..r] massivi uchun ikkita tartiblangan A [p..q] va A [q + 1, r] kichik massivlarni olsak, natijalarni A [p..r] massiviga birlashtiramiz. Bu ikkita tartiblangan A [p..q] va A [q + 1, r] massivlarning birlashmasidir.