O`ZBEKISTON RASPUBLIKASI AXBOROT TEXNALOGIYALARI
VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT ABOROT
TEXNALOGIYALAR UNIVERSITETI
Ma’lumotlar tuzilmasi va algoritmlar
2-AMALIY ISHI
Guruh: SWD001-3
Bajardi: Norqulova Maftuna
Tekshirdi: Mo’minov Sanjar
Toshkent 2023
2-AMALIY MASHG’ULOT.
MAVZU: Qidirish va saralash algoritmi.
9-variant
To’g’ridan-to’g’ri qo’shish usuli bilan saralash algoritmi(insertion sort)
Tanlash orqali saralash algoritmi (Selection sort)
Pufaksimon saralash algoritmi (Bubble sort)
Chiziqli qidirish(linear search)
E. Binar qidirish(binary search)
Nazariy ma’lumot
Tanlash orqali saralash algoritmi
Mazkur usul quyidagi tamoyillarga asoslangan:
1. Eng kichik kalitga ega element tanlanadi.
2. Ushbu element a0 birinchi element bilan o’rin almashinadi.
3. Keyin mazkur jarayon qolgan n-1, n-2 elementlar bilan takrorlanib, to
bitta eng “katta” element qolguncha davom ettiriladi.
for(int i=0;ifor(int j=i+1;jif (a[i] > a[j]){
int k = a[j];
a[j]= a[i];
a[i]= k;
}
Algoritm samaradorligi:
-Taqqoslashlar soni
-Massiv tartiblanganda o’rinlashtirishlar soni
-Massiv teskari tartiblanganda o’rinlashtirishlar soni
Ushbu usul bo’yicha saralash bajarilsa, eng yomon holda taqqoslashlar va
o’rinlashtirishlar soni tartibi n^2 bo’ladi.
2.4. Pufaksimon saralash algoritmi
Ushbu usulning g’oyasi quyidagicha: n - 1 marta massivda quyidan yuqoriga
qarab yurib kalitlar jufti-jufti bilan taqqoslanadi. Agar pastki kalit qiymati
yuqoridagi jufti kalitidan kichik bo’lsa, u holda ularning o’rni almashtiriladi (3.1-
rasm). Misol : massiv - 4, 3, 7, 2, 1, 6
3.1-rasm. Pufaksimon saralash usulida massiv elementlarining o’rnini almashtirish
Pufaksimon usulni massiv elementlarida pastdan yuqoriga va
yuqoridan pastga
o’tishni bir vaqtda amalga oshirish natijasida yaxshilash mumkin.
-
Taqqoslashlar soni:
-Almashtirishlar soni:
“Pufaksimon” saralash usulini hisoblashga misol
3.2-rasm. Massivni pufaksimon saralashga misol
3.2-rasmda berilgan misolda 5 ta elementdan iborat massiv berilgan. Demak,
massivda pastdan yuqoriga (yuqoridan pastga) o’tishlar soni 5-1=4 marta bo’ladi.
Misoldan ko’rinib turibdiki, algoritm ichki siklda 3-qadamdan boshlab
massivni “bekor” qayta ishlaydi, 4-qadamni bajarmasa ham bo’ladi.
Berilgan usullarning afzalligi:
1) Eng sodda algoritm;
2) Amalga oshirish sodda;
3) Qo’shimcha o’zgaruvchilar shart emas.
Kamchiliklari:
1) Katta massivlarni uzoq qayta ishlaydi;
2) Har qanday holatda ham o’tishlar soni kamaymaydi.
Toq va juft sonlardan tashkil topgan B massiv berilgan. Barcha toq sonlarni chiqarib, juft sonlarini To’g’ridan-to’g’ri qo’shish usuli bilan saralash algoritmidan foydalanib o’sish tartibda joylashtiruvchi dastur tuzing.
KOD:
#include
using namespace std;
void oddEvenSort(int arr[], int n) {
bool isSorted = false;
while (!isSorted) {
isSorted = true;
// Saralash jarayoni to'g'ri sonlarga mos keladigan joylar orqali
for (int i = 1; i <= n - 2; i += 2) {
if (arr[i] > arr[i + 1]) {
swap(arr[i], arr[i + 1]);
isSorted = false;
}
}
// Saralash jarayoni toq sonlarga mos keladigan joylar orqali
for (int i = 0; i <= n - 2; i += 2) {
if (arr[i] > arr[i + 1]) {
swap(arr[i], arr[i + 1]);
isSorted = false;
}
}
}
}
int main() {
int arr[] = {9, 3, 5, 1, 7, 8, 2, 4, 6};
int n = sizeof(arr) / sizeof(arr[0]);
oddEvenSort(arr, n);
cout << "Odd-Even Sorted array: ";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
NATIJA:
Dostları ilə paylaş: |