5-ma’ruza. Tez saralash algoritmi



Download 92 Kb.
bet1/6
Sana05.06.2022
Hajmi92 Kb.
#637363
  1   2   3   4   5   6

5-MA’RUZA. TEZ SARALASH ALGORITMI


Reja:
1. Tezkor saralash;
2. Saralashning umumiy mexanizmi;
3.QuickSort algoritmi tahlili.

5.1.Tezkor saralash;

Tezkor saralash (Quick Sort). Saralashning eng yaxshi algoritmlari oʻnligi tuzilganda, koʻplab dasturchilar roʻyxati orasida Tezkor saralash (Quick Sort) algoritmini koʻrishimiz mumkin. Oʻtgan mavzuda saralash algoritmlarining eng yaxshilaridan biri sifatida birlashtirib saralash (Merge Sort) algoritmni koʻrib chiqqandik. Shuning uchun Quick Sort algoritmining qanday afzalliklari mavjud, degan tabiiy savol paydo boʻladi?
Amaliy nuqtai nazardan Quicksort algoritmi raqobatbardosh boʻlib, koʻpincha MergeSort algoritmidan ustun turadi va shu sababli bu koʻplab dasturlash kutubxonalarida standart tartiblash usuli hisoblanadi.
Quicksort algoritmining MergeSort algoritmidan katta ustunligi shundaki, u bir joyda ishlaydi - u kirish massivi bilan faqat elementlarning juft toʻgʻridan-toʻgʻri almashinuvini takrorlash orqali ishlaydi va shu sababli oraliq uchun faqat ozgina qoʻshimcha tezkor xotira kerak boʻladi.
Tezkor saralash (Quick sort – Xoara metodi) koʻpincha qsort deb nomlanadi (uning nomi C standart kutubxonasida) - bu ingliz kompyuter olimi Toni Xoara tomonidan 1960-yilda Moskva davlat universitetida ishlab yurgan paytlarida yaratilgan saralash algoritmi hisoblanadi.
Massivlarni saralash boʻyicha eng tez ma’lum boʻlgan universal algoritmlardan biri: n elementni saralashda oʻrtacha O (nlogn) almashinuv boʻladi. Bir qator kamchiliklar mavjudligi sababli amalda odatda ba’zi bir oʻzgartirishlar bilan qoʻllaniladi.
Umumiy tavsif. QuickSort - bu toʻgʻridan-toʻgʻri almashinuvni saralash algoritmining (Bubble Sort va Shaker Sort algoritmlari) sezilarli darajada takomillashtirilgan variant boʻlib, u past samaradorligi bilan ham tanilgan. Asosiy farq shundaki, birinchi navbatda, almashtirishlar mumkin boʻlgan masofada amalga oshiriladi va har bir oʻtishdan keyin elementlar ikkita mustaqil guruhga boʻlinadi. (Shunday qilib, eng samarasiz toʻgʻridan-toʻgʻri saralash usulini takomillashtirish eng samarali takomillashtirilgan usullardan birini beradi.)
Algoritmning umumiy gʻoyasi quyidagicha:

  1. Massivdan “tayanch” elementni tanlang. Bu massivdagi har qanday element boʻlishi mumkin. Algoritmning toʻgʻriligi “tayanch” elementini tanlashga bogʻliq emas, lekin ba’zi hollarda uning samaradorligi kuchli bogʻliq boʻlishi mumkin (pastga qarang).

  2. Qolgan barcha elementlarni “tayanch” elementi bilan taqqoslang va ularni massiv ichida tartiblang, shunday qilib massivni ketma-ket uchta doimiy segmentga boʻling: "tayanch elementdan kichikroq elementlar, "tayanch elementga teng elementlar" va "tayanch elementdan katta elementlar".

  3. "Kichik" va "katta" qiymatlar segmentlari uchun segmentning uzunligi birdan katta boʻlsa, bir xil amallar ketma-ketligini bajaring.

Amalda massiv odatda uchga emas, balki ikki qismga boʻlinadi: masalan, "tayanch elementdan kichikroq" va "tayanch elementga teng va katta". Bu yondashuv odatda yanada samaraliroq boʻladi, chunki bu qismlarni ajratish algoritmini soddalashtiradi (pastga qarang).
Xoara bu usulni mashinada tarjima qilish uchun ishlab chiqdi; lugʻat magnit lentada saqlangan va qayta ishlangan matn soʻzlarini saralash, ularni tarjima qilmasdan, lentaning bir qatorida olish imkoniyatini yaratdi.
Algoritmni Xoara Sovet Ittifoqida boʻlganida ixtiro qilgan, u yerda u Moskva universitetida kompyuter tarjimasini oʻrgangan va ruscha-inglizcha soʻzlashuv kitobini ishlab chiqishda ishlagan.

5.2. Saralashning umumiy mexanizmi.
Quicksort – bu ham “boʻlib tashla va hukmronlik qil” prinsipiga asoslanuvchi algoritmdir.
Eng umumiy koʻrinishida psevdokod algoritmi quyida berilgan. (bu yerda A - saralanadigan massiv, low va high esa, mos ravishda, ushbu massivning saralangan qismining pastki va yuqori chegaralari)
Psevdokod nima? Psevdokod - bu imperativ dasturlash tillarining kalit soʻzlaridan foydalanadigan algoritmlarni tavsiflash uchun ixcham, koʻpincha norasmiy til, ammo algoritmni tushunish uchun zarur boʻlmagan tafsilotlar va oʻziga xos sintaksisni chiqarib tashlaydi. Algoritmni kompyuterga tarqatish va dasturni keyinchalik bajarish uchun emas, balki odamga taqdim etish uchun moʻljallangan.

Rekursiv QuickSort funksiyasi uchun psevdokod:




Download 92 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4   5   6




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish