• 5. “Pufaksimon” usulni yaxshilash
  • (n* log( n )). 6. Quiksort – tez saralash algoritmi Bu algoritm “bolib ol va egalik qil” tamoyilining yaqqol misolidir. Bu algotirm rekursiv bolib, ortacha N*log2N
  • Samarqand davlat universiteti raqamli texnologiyalar fakulteti optimal boshqaruv usullari kafedrasi




    Download 2,57 Mb.
    bet47/61
    Sana10.01.2024
    Hajmi2,57 Mb.
    #134248
    1   ...   43   44   45   46   47   48   49   50   ...   61
    Bog'liq
    Samarqand davlat universiteti raqamli texnologiyalar fakulteti o

    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 (6.1- rasm).
    Misol : massiv - 4, 3, 7, 2, 1, 6.

    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.
    “Pufaksimon” saralash usulini hisoblashga misol
    2-rasm. Massivni pufaksimon saralashga misol
    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.
    5. “Pufaksimon” usulni yaxshilash
    1) Agar massivda o'tishlar nafaqat yuqoridan pastga, balki bir vaqtning
    o'zida pastdan yuqoriga ham bo'lsa, u holda “yengil” elementlar “yuqoriga suzib” chiqadi va “og'ir” elementlar esa “cho'kadi”.
    2) Massivda “bekor” o'tishni yo'q qilish uchun, tashqi siklda massiv saralanganligini tekshiruvchi belgi qo'yish lozim.
    for (int i=0;i
    for (int j=n-1;j>i;j--)
    if (a[j] < a[j - 1]){
    int x= a[j - 1];
    a[j - 1] = a[j];
    a[j] = x; }
    O'rinlashtirish va taqqoslashlar soni: (n* log( n )).
    6. Quiksort – tez saralash algoritmi
    Bu algoritm “bo'lib ol va egalik qil” tamoyilining yaqqol misolidir. Bu algotirm rekursiv bo'lib, o'rtacha N*log2N ta solishtirish natijasida saralaydi. Algoritm berilgan massivni saralash uchun uni 2 taga bo'lib oladi. Bo'lib olish uchun ixtiyoriy elementni tanlab undan 2 ta qismga ajratiladi. Lekin o'rtadagi elementni tanlab, massivning teng yarmidan 2 ga ajratgan ma'qul. Tanlangan kalit elementga nisbatan chapdagi va o'ngdagi har bir element solishtiriladi. Kalit elementdan kichiklar chapga, kattalar o'ng tomonga o'tkaziladi (6.3-rasm). Endi massivning har ikkala tomonida xuddi yuqoridagi amallar takrorlanadi. Ya'ni bu oraliqlarning o'rtasidagi elementlar kalit sifatida olinadi va h.k.
    Misol uchun rasmdagi massivni saralash algoritmini ko'rib chiqamiz.
    1. Oraliq sifatida 0 dan n-1 gacha bo'lgan massivning barcha elementlarini olamiz.
    2. Oraliq o'rtasidagi kalit elementni tanlaymiz, ya'ni

    Download 2,57 Mb.
    1   ...   43   44   45   46   47   48   49   50   ...   61




    Download 2,57 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Samarqand davlat universiteti raqamli texnologiyalar fakulteti optimal boshqaruv usullari kafedrasi

    Download 2,57 Mb.