Void quickSort(string arr[], int left, int right) {


Download 137.72 Kb.
Sana15.06.2023
Hajmi137.72 Kb.
#1487699
Bog'liq
Mahamatov J. algorithm 4- amaliy


O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI QARSHI FILIALI

______________Kompyuter injiniringi________________” FAKULTETI


___2_-BOSQICH __ ___ GURUH TALABASINING
_________ Algoritmlarni loyihalash_________”
FANIDAN TAYYORLAGAN

4- amaliy mashg’ulot


Bajardi:
Qabulqildi:


QARSHI – 2023


Mavzu: “Ajrat va xukmronlik qil” prinsipi bo‘yicha ishlaydigan algoritmlarni loyihalash
Maqsad: Talabalar “Ajrat va xukmronlik qil” prinsipi bo‘yicha ishlaydigan algoritmlarni loyihalash o‘rganishi, Quicksort va MergeSort saralash algoritmlarini qo’llashni o‘rganishi, bu usullar haqida bilim va ko‘nikmalarga ega bo‘lishi hamda mustaqil masalalar yechishi va shu masalaga mos algoritmlar qura olishi kerak.
Amaliy ishini bajarish uchun zarur jihozlar. Zarur dasturiy ta’minot (C++ dasturlash tili kompilyatori, matn muharriri) o‘rnatilgan personal kompyuter, Amali ish ishini bajarish bo‘yicha (ushbu) uslubiy ko‘rsatma

Masala:
8. O‘tgan yildan beri ta’mirlanmagan mashinalarni ularning egalari ismlari bo‘yicha alifbo tartibida joylashtiring.
Dastur kodi:
#include
#include
using namespace std;

void quickSort(string arr[], int left, int right) {
int i = left, j = right;
string tmp;
string pivot = arr[(left + right) / 2];

while (i <= j) {
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
};

if (left < j)
quickSort(arr, left, j);
if (i < right)
quickSort(arr, i, right);
}

int main() {
string names[] = {"Davronov Jaloliddin", "Xudoyberdiyev Og'abek'", "Zamonov Asadbek", "Tojiyev Sardor", "Do'stmurodov Elbik"};
int arrLength = sizeof(names) / sizeof(names[0]);

cout << "Before sorting:\n ";
for (int i = 0; i < arrLength; i++) {
cout << names[i] << "\n ";
}

quickSort(names, 0, arrLength - 1);

cout << "\nAfter sorting: \n";
for (int i = 0; i < arrLength; i++) {
cout << names[i] << " \n";
}

return 0;
}

Ushbu dastur nomlar qatorini oladi va ularni alifbo tartibida tartiblash uchun Quicksort algoritmidan foydalanadi. quickSort() funktsiyasi massiv, chap indeks va o'ng indeksni qabul qiluvchi rekursiv funksiyadir. U aylanma elementni tanlaydi (bizning holimizda, o'rta element) va keyin massivni ikkita kichik massivga bo'ladi, birining elementlari pivotdan kichik, ikkinchisi esa pivotdan kattaroq elementlarga ega. Massiv tartiblashtirilgunga qadar bo'linishni davom ettiradi.
main() funksiyasida biz nomlar qatorini yaratamiz va ularni saralash uchun quickSort() ni chaqiramiz. Keyin saralashni tasdiqlash uchun asl va tartiblangan massivlarni chop etamiz.

Natija:

Download 137.72 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling