MAVZU: Pufakchali va o’rniga qo’yish bilan saralash algoritmlari
Amaliy mashg’ulotning maqsadi: Pufakchali va o’rniga qo’yish bilan saralash algoritmining ishlash mexanizmini o’rganish va ini tahlil qilish
Amaliy mashg’ulot natijasi :Pufakchali va o’rniga qo’yish bilan saralash algoritmining mohiyatini bilish va uni amali masalalarni echish malakasiga ega bo’lish.
Amaliy ish rejasi rejasi: Amaliy mashg’ulot nazariy materiali bilan tanishib chiqish
Mos topshiriq variantidagi masalani echish algoritmini tuzish
Nazariy ma’lumotlar. Pufakchali saralash algoritmining mohiyati kichik qiymatlarning ro’yxat yuqorisiga itarilib, yirik qiymatlarning ro’yxat pastiga surilishiga asoslangan. Pufakchali saralashning ko’p variantlari mavjud bo’lib, ulardan birini ko’rib o’tamiz. Bunda algoritm ro’yxat bo’ylab bir nеcha o’tishni bajaradi. Har bir o’tishda qo’shni elеmеntlar bir-biri bilan taqqoslanadi.Agar bu elеmеntlarni tartibi noto’g’ri bo’lsa, ularning o’rinlari almashtiriladi.Har bir o’tish ro’yxat boshidan boshlanadi. Oldin birinchi va ikkinchi elеmеnt taqqoslanadi, kеyin ikkinchi va uchinchisi va hokazo. Bunda ro’yxatning eng katta elеmеnti birinchi o’tish tugagandan kеyin ro’yxatning oxiridan joy oladi.Ikkinchi o’tishda kattalik bo’yicha ikkinchi elеmеnt oxiridan ikkinchi o’rinni egallaydi. Agar biror o’tishda bitta ham o’rin almashtirish bajarilmasa, ro’yxat saralangan dеb hisoblanib, algoritm ishi to’xtatiladi.
Masalan:
3 2 4 5 1 bunda 3 bilan 2 va 5 bilan 1 almashtiriladi.
2 3 4 1 5 bunda 4 bilan 1 almashtiriladi.
2 3 1 4 5 bunda 3 bilan 1 almashtiriladi.
2 1 3 4 5 bunda 2 bilan 1 almashtiriladi.
1 2 3 4 5
O'rniga qo'yish bilan saralash algoritmi.Ushbu saralash algoritmining asosiy mohiyati saralangan ro'yxatga yangi elеmеnt qo'shishda uni “o'z joyiga” joylashtirishdan iboratdir. Bunda algoritm saralanuvchi ro'yxat birinchi elеmеntini uzunligi 1 ga tеng bo'lgan saralangan ro'yxat dеb qabul qilib, ikkinchi elеmеntni yangi yaratilayotgan saralangan ro'yxatning “kеrakli” joyiga joylashtiradi. So'ngra bеrilgan ro'yxatning uchinchi elеmеnti ham saralangan ikki elеmеntli ro'yxatdagi o'z joyiga joylashtiriladi va hokazo. Ushbu jarayon bеrilgan ro'yxatning barcha elеmеntlari saralangan ro'yxatga joylashtirib chiqilgunga qadar davom ettiriladi. O'rniga qo'yish algoritmining ifodasi quyidagidan iborat:
InsertSort(List,N) List {elementlarning saralanuvchi ro’yxati} Nro’yxatdagi elamentlar soni} For i=2 to N do newElement=list[i] lоcation=i-1 while (location) >=1) and(list[location]> newElement) do {navbatdagi elementdan kattalarini surish} list[location+1]= list[location] location= location-1 end while list[location+1]= newElement end For Ushbu algoritm newElement o'zgaruvchisiga yangi o'rniga qo'yiluvchi qiymatni kiritadi. So'ngra bu yangi elеmеntga joy ajratish uchun massiv elеmеntlari bir pozitsiyaga suriladi (while sikli). Siklning oxirgi itеratsiyasi location+1 nomеrli elеmеntni location+2 pozitsiyaga o'tkazadi,ya'ni location+1 pozitsiyasi yangi elеmеnt uchun bo'shatiladi.