|
Ma'lumotlarni saralash algoritmlari. Saralash tushunchasi va uning vazifasi. Saralashning qat’iy usullari va ularning samaradorligi
|
bet | 7/7 | Sana | 28.11.2023 | Hajmi | 7,87 Mb. | | #107179 |
Bog'liq FpicbbEWsfTs6uumr4wrAPbc2neimBs1pzBMGjHx (1)
1- o’tish:
1-Misol:
2-o’tish :
3- o’tish :
4- o’tish :
N elementdan iborat massivni saralash uchun N-1 ta o’tish kerak (N-1 ta elementlarni o’z o’rniga qo’yish kerak).
!
2-Misol:
Masalan, bizda butun sonlar massivi mavjud:
Massivdan birinchi o'tishda biz 3 va 7 qiymatlarini taqqoslaymiz. 7 raqami 3 dan katta bo'lgani uchun biz ularni o'z holicha qoldiramiz. Keyin biz 7 va 4 ni solishtiramiz. 4 raqami 7 dan kichik, shuning uchun biz ularni almashtiramiz, 7 ni bir pozitsiyaga massiv oxiriga yaqinlashtiramiz. Endi u shunday ko'rinadi:
3-Misol:
Bu jarayon 7 raqami massivning deyarli oxiriga yetguncha takrorlanadi. Oxirida u 8-element bilan taqqoslanadi, u kattaroqdir, ya'ni almashinuv yo'q. Massivni bir marta qarab chiqqanimizdan so'ng, u quyidagicha ko'rinadi:
Hech bo'lmaganda bitta qiymat almashinuvi sodir bo'lganligi sababli, biz massivni yana bir marta takroran ko’rib chiqishimiz kerak. Ushbu o'tish natijasida biz 6 raqamini joyiga o'tkazamiz.
Keyingi o’tishda almashish sodir bo’lmaydi, demak, massiv saralangan holga kelganligi uchun algoritm o’z ishini yakunlaydi.
Va yana kamida bitta almashinuv amalga oshirildi, ya'ni biz yana massivni ko’rib chiqamiz.
#include
using namespace std;
int main()
{ int n; // elementlar soni
cout << “ Elementlar soni: ";
cin >> n;
/* Massiv o’lchamini aniqlaymiz */
int mass[n];
for(int i = 0; i < n; ++i)
{ cout << i+1 << "-nchi element: ";
cin >> mass[i];
}
cout << " Berilgan massiv: ";
for(int i = 0; i < n; ++i)
{ cout << mass[i] << " ";
}
cout << endl;
/* Kamayish bo’yicha saralaymiz */
for(int i = 1; i < n; ++i)
{ for(int r = 0; r < n-i; r++)
{if(mass[r] < mass[r+1])
{ // Joyini almashtirish
int temp = mass[r];
mass[r] = mass[r+1];
mass[r+1] = temp;
}
}
}
/* Saralangan massiv */
cout << " Saralangan massiv : ";
for(int i = 0; i < n; ++i)
{ cout << mass[i] << " ";
}
cout << endl;
return 0;
}
Agar biz nafaqat maksimum qiymatga ega elementlarni oxiridan joylashtirib kelsak, balki minimum qiymatga ega bo’lgan elementlarni ham massivning boshlang’ich tomonidan joylashtirib kelsak, unda biz SHEYKER saralash algoritmiga ega bo’lamiz.Bu demak almashtirish usulining bir modifikatsiyasi bo’ladi.
Takomillashtirilgan,yahshilangan usullarni keyingi darsda ko’ramiz
-Mavzu bo‘yicha nazorat savollari
1. Saralash deganda nima tushiniladi?
2. Saralashning vazifasi nimadan iborat?
3. Saralashning maqsadi nimadan iborat?
4. Qo‘yish orqali saralashning g‘oyasini tushuntirib bering?
5. Tanlash orqali saralash tushunchasi?
6. Pufaksimon saralash nima?
|
|
Bosh sahifa
Aloqalar
Bosh sahifa
Ma'lumotlarni saralash algoritmlari. Saralash tushunchasi va uning vazifasi. Saralashning qat’iy usullari va ularning samaradorligi
|