Void quickSort(string arr[], int left, int right) {
Download 137.72 Kb.
|
Mahamatov J. algorithm 4- amaliy
- Bu sahifa navigatsiya:
- ___2_-BOSQICH __ ___ GURUH TALABASINING “ _________
- Amaliy ishini bajarish uchun zarur jihozlar.
- include include using namespace std; void quickSort(string arr[], int left, int right) {
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
ma'muriyatiga murojaat qiling