QuickSort algoritmi bir-biridan farqli tanlash jarayonini uzunligi n sonli bir massiv berilganida bajaradi. Bu algoritm esa, har bir birlikka shularni tanlaydigan va kelajakda ularning puxtagorliklariga qarab tartibini tutuvchi, takrorlanuvchi usulni ilovaga qo'llaydi. Bu usul orqali, berilgan massiv bir-biridan farq sportirovano bo'lishi mumkin.
Algoritm boshida avvalgi tartibning qirqalash joyida bir ta element bo'larkan, usul bu elementni pivot element deb yuritadi. Bu pivot element o'rtasida o'qinga va chapga joylashganlarda ikki qismga ajratiladi. Keyingi adimlarda usul har bir qisimni ohiridan qirqib uni yana pivot elemntlari bilan ajratadi. Agar bir qismda o'ngdan chapga keladigan bir element mavjud bo'lsa, usul uni o'ngdan chapga o'tkazadi. Aks holda uni chapdan o'ngga o'tkazadi. Bu qilib, har bir elemnt bir-paqli loyig'a sabab turadi. Kichik qism va katta qism bevosita to'xtash holda tartiblanadiganlarini karsilashtirib, agar o'ng qismda kichik elemntlar katta bo'lgan qismda katta elemtnlar kichik bo'lsa, bosh joyini almashtriladi.
Masalan, ekranga quyidagi tartibli sonlar kelganida, QuickSort algoritmi quyidagi shaklda vazifa uchun amalga oshirilishi mumkin:
[9, 2, 5, 8, 1, 7, 4, 6, 3]
1. O'rni ma'lum bo'lmagan bir elementni Pivot Element so'raymiz, nima uchun bu tarkib elementi 3 bo'lmaganmas.
[9, 2, 5, 8, 1, 7, 4, 6, 3]
^
2. Kichigin sonlari katta sonlar bilan ajratiladi hamina qatron o'qini o'ngga multipledan o'tkazamiz.
[2, 1, 3] [9, 5, 8, 7, 4, 6]
^
3. Qatordan keyin, 2 va 1 o'rtasida kechiruvchi elementni Pivot Element deb xisoblanadi.
[1, 2] [3] [9, 5, 8, 7, 4, 6]
^
4. Qatordan keyin, 5 o'ng tomoni orqali joylashtiriladi, qatordoshina yanada divisionga yetib chiqiladi.
[1, 2] [3] [5, 8, 7, 4, 6] [9]
^
5. Qatordan keyin, 5 va 8 orasidagi kechiruvchi elementni Pivot Element deb xisoblanadi.
[1, 2] [3] [5, 4, 6, 7][8] [9]
^
6. Qatordan keyin, 7 kichikligi sababli yo'lga qo'yiladi.
[1, 2] [3] [5, 4, 6][7] [8] [9]
^
7. Nihayt qatordan keyin, Algoritmlik qarang, barcha elementlari jamoasida tartibirgan elementlar orasidagi sukunatlasi kana ko'rinishga keladi.
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Bu usulda, list sonli usulda qayta va qayta tortib rabita qilish va kechqurunlar qilish kerak emas, shuning uchun usul bu ishni bir oz tekshirish bilan bajariladigan mumkin eng tez va yaxshi algoritmdir. Algoritimning o'rtacha ravishda ikki formula paydo bo'ladi:
- O(q) va O(n-q) bo'luvchilarga elementlar ajratilishi kerak.
- Quicksort usuli rasmlovchi nuqtalari kesib turadi, bunga kirish matni, kesish jadvalidagi moddalar yoki ko'zdan kechinadigan va'ziorlar kirishni tushunishda xizmat qiladi.