arrayPtr[element_counter] = temp;
}
}
}
}
Tanlovni saralash algoritmi maksimal (minimal) elementlarni qidirish algoritmiga asoslangan. Darhaqiqat, qidiruv algoritmi tanlovni saralashning eng muhim qismidir. Saralashning asosiy vazifasi massiv elementlariga buyurtma berish bo'lganligi sababli, almashtirishlarni amalga oshirish kerak. Tartiblanayotgan massiv elementlari qiymatlarining almashinuvi 48-50 qatorlarda sodir bo'ladi. Agar siz 46 satrdagi> belgisini kamroq belgiga o'zgartirsangiz, unda massiv kamayish tartibida saralanadi. Dastur natijasi 1-rasmda keltirilgan.
II.BOB Saralash algoritimlari.
Pufakcha usulida saralash(Bubble sort).
Pufakcha usulida saralash algoritmi massivining dastlabki ikkita elementini taqqoslash bilan boshlanadi, agar kerak bo'lsa almashtirladi. Masalan, agar siz massiv elementlarini qoiymati bo'yicha saralamoqchi bo'lsangiz va birinchi element ikkinchisidan kattaroq bo'lsa, elementlarni joyida almashtirishingiz kerak. Agar birinchi element ikkinchisidan kam bo'lsa, uni almashtirishingiz kerak emas. Keyin ikkinchi va uchinchi elementlar yana taqqoslanadi va agar kerak bo'lsa almashtiriladi va bu jarayon oxirgi va oldingi elementlar taqqoslanib almashtirilguncha matngacha davom etadi. Bu qabariq tartibining birinchi bosqichini yakunlaydi.
Agar sizga n elementni saralash kerak bo'lsa, unda kerakli natijani olish uchun yuqorida aytib o'tilgan jarayon n-1 marta takrorlanishi kerak. Ammo ikkinchi ekranda yaxshiroq ishlab chiqarish uchun oxirgi va oldingi elementlar taqqoslanmaydi, chunki mos keladigan element birinchi qadamdan keyin oxirida avtomatik ravishda joylashtiriladi. Xuddi shunday, uchinchi bosqichda oxirgi va oldingi va oldingi elementlar taqqoslanmaydi va hokazo.
Agar ikki qo’shni element noto’g’ri tartibda joylashib qolgan bo’lsa, ularning o’rnini almashtiramiz.
Umumiy n-1 marta jarayon bajariladi. Har safar ikkita qo’shni element taqqoslanadi.
Elementlar o’z o’rinlariga pufakga o’xshab siljib boradi.
To'g'ridan-to'g'ri almashtirishni saralash algoritmi barcha elementlar saralanmaguncha qo'shni elementlarning juftligini taqqoslash va almashtirish printsipiga asoslanadi. To'g'ridan-to'g'ri tanlash usulida bo'lgani kabi, takrorlashlar massiv orqali amalga oshiriladi, har safar qolgan ketma-ketlikning eng kichik elementini massiv boshiga o'tkazadi. Agar biz massivlarni gorizontal emas, balki vertikal deb hisoblasak, unda elementlarni bankadagi suv pufakchalari deb talqin qilish mumkin va ularning har birining vazni uning kalitiga mos keladi. Bunday holda, har bir o'tish joyida bitta qabariq, go'yo uning vazniga mos keladigan darajaga ko'tariladi. Ushbu uslub pufakchali saralash deb nomlanadi.
C++ da Pufakchalarni saralash.
#define _CRT_SECURE_NO_WARNINGS // to'g'ri ish uchun scanf()
#include
// To'g'ridan-to'g'ri almashinuvni saralash funktsiyasi (pufakcha usuli)
void bubbleSort(int *num, int size)
{
// Barcha elementlar uchun
for (int i = 0; i < size - 1; i++)
{
for (int j = (size - 1); j > i; j--) // i-dan keyingi barcha elementlar uchun
{
if (num[j - 1] > num[j]) // agar joriy element avvalgisidan kam bo'lsa
{
int temp = num[j - 1]; // ularni almashtirish
num[j - 1] = num[j];
num[j] = temp;
}
}
}
}
int main()
{
int a[10]; // 10 ta elementdan iborat massivni e'lon qilish
// Massiv elementlarining qiymatlarini kiriting
for (int i = 0; i < 10; i++)
{
printf("a[%d] = ", i);
scanf("%d", &a[i]);
}
bubbleSort(a, 10); // tartiblash funktsiyasini chaqiring
// Tartiblangan qator elementlarini ko'rsatish for (int i = 0; i<10; i++)
printf("%d ", a[i]);
getchar(); getchar();
return 0;
}
Do'stlaringiz bilan baham: |