• Ishni bajarishga namuna
  • Topshiriq Quyida har 10 ta variant uchun umumiy bo„lgan masalaning berilishi va talab qilinayotgan saralash usuli keltirilgan. Talabalar topshiriq olib
  • “Dasturiy injiniring” fakulteti “MA‟lumotlar tuzilmasi va algoritmlar”




    Download 1.33 Mb.
    Pdf ko'rish
    bet47/49
    Sana20.08.2022
    Hajmi1.33 Mb.
    #25297
    1   ...   41   42   43   44   45   46   47   48   49
    Dastur kodi 
    #include  
    #include  
    using namespace std; 
    struct table{ 
    int t; 
    string FIO


    118 
    };
    int q=0; 
    void qs(table *a,int first,int last){ 
    int i = first, j = last;table x =a[(first + last) / 2]; 
    do { 
    while (a[i].FIO < x.FIO) i++; 
    while (a[j].FIO > x.FIO) j--; 
    if(i <= j) { 
    if (i < j){ swap(a[i], a[j]);q++;} 
    i++; 
    j--; 

    } while (i <= j); 
    if (i < last) 
    qs(a,i,last); 
    if (first < j) 
    qs(a,first,j); 

    int main(int args, char *argv[]) 
    { int n;cout<<"n=";cin>>n; 
    table talaba[n]; 
    for(int i=0;i
    talaba[i].t=i+1; 
    cin>>talaba[i].FIO; 

    qs(talaba,0,n-1); 
    for(int i=0;i
    cout<
    cout<<"quicksort algoritmi "<
    saraladi\n"; 


    119 
    system("PAUSE"); 

    Dastur natijasi: 
    talabalar sonini kiriting=5 
    5 ta talabalar FIO sini kiriting 
    Farhod
    Asror 
    Sobir
    Bobur
    Vali
    | 2 | Asror | 
    | 4 | Bobur | 
    | 1 | Farhod | 
    | 3 | Sobir | 
    | 5 | Vali | 
    bu algoritm jadvalni 3 ta o‘rinlashtirishda saraladi 
    Ishni bajarishga namuna 
    Masalaning qo„yilishi – tabalarning ism, familiyalarini optimallashtirilgan 
    pufaksimon usuli bilan tartibga keltirish dasturini tuzamiz va saralash nechta o„rin 
    almashtirish bilan amalga oshirilganini aniqlaymiz. 
    Algoritm 
    1. Jadvalga talabalar ism-sharifini kiritamiz. 
    2. Jadvaldagi 1-elementni olamiz, i=0. 
    3. Jadvaldagi n-1 oxirgi elementdan to i-elementgacha barcha elementni FIO 
    maydonini o„zidan oldin turgan element FIO maydoni bilan solishtiramiz. Agar 
    zarur bo„lsa, o„rin almashtiramiz va o„rin almashtirishlar hisoblagichi l ning 
    qiymatini bittaga oshiramiz, ya‟ni l++. 
    4. Agar i bo„lsa, i++ va 3-qadamga o„tamiz.
    5. Natijaviy saralangan massivni ekranga chiqaramiz. 
    Dastur kodi 


    120 
    #include  
    #include  
    using namespace std; 
    int main(int args, char *argv[]) 

    int n; cout<<"talabalar sonini kiriting=";cin>>n; 
    struct table{ 
    int t; 
    char FIO[20]; 
    } talaba[n]; 
    cout<
    for(int i=0;i
    talaba[i].t=i+1; 
    cin>>talaba[i].FIO; 


    int l=0; 
    for(int i=0;i
    for(int j=n-1;j>i;j--){
    if (strcmp(talaba[j-1].FIO,talaba[j].FIO)==1){ 

     
     
     
     
    l++; 
    table k=talaba[j]; 
    talaba[j]=talaba[j-1]; 
    talaba[j-1]=k;

    }
    }
    for(int i=0;i
    cout<<"| "<
    cout<<"bu algoritm jadvalni "<
    o‘rinlashtirishda 
    saraladi\n"; 


    121 
    system("PAUSE"); 

    Dastur natijasi: 
    talabalar sonini kiriting=5 
    5 ta talabalar FIO sini kiriting 
    Farhod
    Asror 
    Sobir
    Bobur
    Vali
    | 2 | Asror | 
    | 4 | Bobur | 
    | 1 | Farhod | 
    | 3 | Sobir | 
    | 5 | Vali | 
    bu algoritm jadvalni 10 ta solishtirishda saraladi 
     
    Nazorat savollari 
    1. Qanday saralash algoritmlarini bilasiz? 
    2. Saralash algoritmlari samaradorligini qanday baholash mumkin? 
    3. Pufaksimon saralash algoritmi va uni yahshilangan usulini tushuntiring. 
    4. To‟g‟ridan-to‟g‟ri qo‟shish, tanlash algoritmlarini farqini tushuntiring. 
    5. Shella saralash algoritmini tushuntiring. 
    6. Quicksort algoritmini tushuntiring.
    Topshiriq 
    Quyida har 10 ta variant uchun umumiy bo„lgan masalaning berilishi 
    va talab qilinayotgan saralash usuli keltirilgan. Talabalar topshiriq olib 
    so„ralayotgan usul bilan o„zlari tomonidan tanlangan ixtiyoriy saralash 


    122 
    usulining samaradorligini solishtirish dasturini tuzishlari kerak. Usullarni 
    solishtirishda o„rin almashtirishlar soni nazarda tutiladi.
    Ta‟mirlash ustaxonasida bir nechta (N ta) mashina bor. Ular to„g„risida 
    quyidagi ma‟lumotlarga egamiz: raqami, markasi, egasining ismi, oxirgi 
    marta ta‟mirlanganligi sanasi (kuni, oyi, yili), ta‟mirdan chiqishi lozim 
    bo„lgan sana (kun, oy, yil).
    To„g„ridan-to„g„ri qo„shish usulidan foydalanib, saralashni amalga oshirish 
    dasturini ishlab chiqish (variantga mos ravishda): 
    1. Mashina egalarining ismlari bo„yicha alifbo tartibida joylashtirilsin va 
    mos ravishda ularning mashinalari haqidagi ma‟lumotlar chiqarilsin. 
    2. Avtomobillarni ta‟mirlash tartibi ishlab chiqilsin. Bu yerda ta‟mir tugashi 
    sanasi qaysi avtomobil uchun ertaroq bo„lsa, shunga birinchi navbatda xizmat 
    ko„rsatiladi. 
    3. Oldingi ta‟mir qilinganlar soni 2 ga teng bo„lgan mashinalar raqamlari 
    bo„yicha kamayish tartibida joylashtirilsin. 
    4. Oldin ta‟mir qilinmagan mashinalarni ta‟mirdan chiqish sanasi bo„yicha 
    o„sish tartibida joylashtiring. 
    5. "Mersedes" markali mashina egalarini alifbo bo„yicha teskari tartibda 
    joylashtiring. 
    6. Boshqalaridan oldinroq ta‟mirlanadigan mashinalarni ularning markasi 
    bo„yicha alifbo tartibida joylashtiring (ta‟mir tugatilishi sanasi 31.12.2012 dan 
    erta). 
    7. "Nexia" markasidagi mashinalarni raqamlari bo„yicha o„sish tartibida 
    joylashtiring. 
    8. O„tgan yildan beri ta‟mirlanmagan mashinalarni ularning egalari ismlari 
    bo„yicha alifbo tartibida joylashtiring. 
    9. Keyingi oyda ta‟mirlanishi lozim bo„lgan mashinalarni oxirgi marta 
    ta‟mirlanganlik sanasi bo„yicha o„sish tartibida keltiring. 
    10. "Mersedes" markasidagi mashinalarni raqamlari bo„yicha kamayish 
    tartibida joylashtiring. 


    123 

    Download 1.33 Mb.
    1   ...   41   42   43   44   45   46   47   48   49




    Download 1.33 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    “Dasturiy injiniring” fakulteti “MA‟lumotlar tuzilmasi va algoritmlar”

    Download 1.33 Mb.
    Pdf ko'rish