• Dastur kodi
  • Dastur natijasi
  • Nazorat savollari
  • key kalitga mos elementni izlash chegaralarini aniqlab olamiz. Dastlab u  [0,n]




    Download 1,33 Mb.
    Pdf ko'rish
    bet46/56
    Sana18.05.2024
    Hajmi1,33 Mb.
    #242340
    1   ...   42   43   44   45   46   47   48   49   ...   56
    Bog'liq
    b2d1fe5c-9484-4aea-a5e7-95281604b19a

    key
    kalitga mos elementni izlash chegaralarini aniqlab olamiz. Dastlab u 
    [0,n]
    oralig„ida, ya‟ni 
    low=0,hi=n

    4.
    Agar 
    low<=hi
    bo„lsa, oraliq o„rtasini hisoblaymiz. 
    mid=(low+hi)/2
    5.
    Agar 
    mid 
    o„rnida turgan talaba adresi TTJ bo„lsa, element topildi, 
    search=mid
    va 7-qadamga o„tiladi, aks holda keyingi qadamga o„tiladi. 
    6.
    Agar “TTJ” so„zi alifbo bo„yicha 
    mid
    o„rnida turgan talaba adresi 
    qiymatidan kichik bo„lsa, izlash quyi chegarasi o„zgaradi, ya‟ni 
    mid
    o„rnida turgan 
    elementdan bitta oldingi elementgacha olinadi, ya‟ni 
    hi=mid-1.
    Aks holda, yuqori 
    chegara o„zgaradi – 
    mid
    dan keyingi elementdan to oxirgi elementlar oralig„i 
    olinadi, ya‟ni 
    low=mid+1
    . 4-qadamga o„tiladi. 
    7.
    Agar topilgan elementdan oldin turgan elementning (
    mid-1
    ) ham adres 
    maydoni TTJ bo„lsa, 
    search--,
    ya‟ni bitta oldingi elementga o„tamiz va shu 
    qadamni boshidan bajaramiz. Aks holda keyingi qadamga o„tiladi. 
    8.
    Joriy (
    search
    ko„rsatayotgan) elementdan boshlab adresi “TTJ” ga teng 
    bo„lgan talaba ma‟lumotlarini ekranga chiqaramiz. Agar adresi “TTJ” dan farq 
    qiladigan talaba chiqib qolsa, algoritm tugallanadi. 
    Dastur kodi 
    #include  
    using namespace std; 
    int main(){ 
    int n;cout<<"n=";cin>>n; 


    105 
    struct Guruh{ 
    string fio,adres; 
    }talaba[n]; 
    for(int i=0;i
    cout<>talaba[i].fio; 
    cout<<"adres=";cin>>talaba[i].adres; 

    //jadval binar qidiruv olib boriladigan maydoni bo‘yicha tartiblangan
    //bo‘lishi kerak 
    for(int i=0;i
    for(int j=i+1;j
    if(talaba[i].adres>talaba[j].adres){ 
    Guruh h=talaba[i]; 
    talaba[i]=talaba[j]; 
    talaba[j]=h; 

    for(int i=0;i
    cout<
    cout<
    int low = 0,hi = n-1,search=-1,q=0; 
    string key="TTJ"; 
    while(low<=hi){ 
    int mid = (low + hi) / 2; 
    q++; 
    if (key == talaba[mid].adres){ 
    search = mid; 
    break; 

    if (key < talaba[mid].adres)
    hi = mid - 1; 


    106 
    else low = mid + 1; 

    if(search!=-1) cout<<"qidirilayotgan el "<
    turibdi va "<
    else {cout<
    system("PAUSE"); 
    return EXIT_SUCCESS; 

    while(talaba[search-1].adres==key) search--; 
    while(talaba[search].adres==key) { 
    cout<
    "<
    search++; } 
    system("pause"); 

    Dastur natijasi:
    n=5 
    1-talabaning fio=fam1 
    adres=Toshkent 
    2-talabaning fio=fam2 
    adres=TTJ 
    3-talabaning fio=fam3 
    adres=ijarada 
    4-talabaning fio=fam4 
    adres=uchastkada 
    5-talabaning fio=fam5 
    adres=TTJ 
    fam2 TTJ 
    fam5 TTJ 
    fam1 Toshkent 


    107 
    fam3 ijarada 
    fam4 uchastkada 
    qidirilayotgan el 1-orinda turubdi va 2 ta solishtirishda topildi 
    fam2 TTJ 
    fam5 TTJ 
    Nazorat savollari 
    1.
    Qanday qidiruv algoritmlarini bilasiz?
    2.
    Qidiruv jarayonining tezligi nimalarga bog‟liq? 
    3.
    Statik tuzilmadan birorta elementni izlashning qanday usullari mavjud? 
    4.
    Ro‟yhat tuzilmasidan elementlarni izlab topish tezligini oshirish uchun 
    qanday algoritmlar mavjud? 
    5.
    Binar qidiruvni ro‟yhat tuzilmasiga qo‟llab bo‟ladimi? Sababini asoslang. 
    Topshiriq 
    Variantlar: 
    1.
    Ketma-ket qidiruv usulidan foydalanib, ro„yhat eng kichik elementini 
    toping.
    2.
    Ketma-ket qidiruv usulidan foydalanib, ro„yhatda berilgan kalitdan katta 
    elementlarni toping.
    3.
    Ketma-ket qidiruv usulidan foydalanib, ro„yhat eng kichik elementini 
    toping.
    4.
    Ketma-ket va binar qidiruv usulidan foydalanib, A massivdan elementni 
    va taqqoslashlar sonini toping.
    5.
    Binar qidiruvdan foydalanib elementlarni tasodifiy ravishda toping.
    6.
    Mashina raqamlari ro„yhati berilgan: 345, 368, 876, 945, 564, 387, 230. 
    Binar qidiruvdan foydalanib berilgan raqamli mashina qaysi joyda turganini 
    toping.
    7.
    Ketma-ket qidiruv usulidan foydalanib ro„yhatda har ikkinchi elementni 
    qidiring va taqqoslashlar sonini aniqlang.
    8.
    Binar qidiruvdan foydalanib massivdan berilgan kalitga karrali kalitli 
    elementni va solishtirishlar sonini toping. 


    108 
    9.
    Boshiga qo„yish va transpozitsiya usulidan foydalanib massiv eng katta 
    elementi topilsin. 
    10.
    Boshiga qo„yish usulidan foydalanib ro„yhatda 11 ga butun bo„linuvchi 
    eng katta sonni toping (agar bunday sonlar ko„p bo„lsa, u holda ularning eng 
    kattasini toping; agar bunday son mavjud bo„lmasa – shunga mos ma‟lumot 
    chiqaring). 
    11.
    Transpozitsiya usulidan foydalanib ro„yhatda 11 ga butun bo„linuvchi 
    eng katta sonni toping (agar bunday sonlar ko„p bo„lsa, u holda ularning eng 
    kichigini toping; agar bunday son mavjud bo„lmasa – shunga mos ma‟lumot 
    chiqaring). 
    12.
    Boshiga qo„yish usulidan foydalanib ro„yhatda qo„shni elementlari 
    ayrimasi 72 dan kichik bo„lgan elementni toping. Agar bunday elementlar ko„p 
    bo„lsa, u holda ularning eng kattasini toping; agar bunday element mavjud 
    bo„lmasa – shunga mos ma‟lumot chiqaring. 
    13.
    Transpozitsiya usulidan foydalanib ro„yhatda qo„shni elementlari 
    bo„linmasi juft son bo„lgan elementni toping. Agar bunday elementlar ko„p bo„lsa, 
    u holda ularning eng kattasi yoki eng kichigini toping; agar bunday element 
    mavjud bo„lmasa – shunga mos ma‟lumot chiqaring. 
    14.
    Boshiga qo„yish usulidan foydalanib ro„yhatda qo„shni elementlar 
    ayrimasi juft bo„lgan elementni toping. Agar bunday elementlar ko„p bo„lsa, u 
    holda ularning eng kattasi yoki eng kichigini toping; agar bunday element mavjud 
    bo„lmasa – shunga mos ma‟lumot chiqaring. 
    15.
    Transpozitsiya usulidan foydalanib ro„yhatda kerakli elementgacha 
    bo„lgan elementlarning o„rta arifmetigi 12 ga teng bo„lgan element topilsin. Agar 
    bunday element mavjud bo„lmasa – shunga mos ma‟lumot chiqaring. 
    16.
    Boshiga qo„yish usulidan foydalanib ro„yhatda 10 ga bo„linuvchi 
    maksimal elementni toping. Agar bunday element mavjud bo„lmasa – shunga mos 
    ma‟lumot chiqaring.
    17.
    Boshiga qo„yish va transpozitsiya usulidan foydalanib massiv eng kichik 
    elementi topilsin. 


    109 
    18.
    Transpozitsiya usulidan foydalanib ro„yhatda qo„shni elementlari 
    ayirmasi juft va 3 ga bo„linadigan elementni toping. Agar bunday element mavjud 
    bo„lmasa – shunga mos ma‟lumot chiqaring. 
    19.
    Boshiga qo„yish usulidan foydalanib ro„yhatda kerakli elementdan 
    keyingi elementlarning o„rtacha kvadratik qiymati 10 dan kichik bo„lgan elementni 
    toping. Agar bunday elementlar ko„p bo„lsa, u holda ularning eng kattasini toping; 
    agar bunday element mavjud bo„lmasa – shunga mos ma‟lumot chiqaring. 
    20.
    Transpozitsiya usulidan foydalanib har bir x element uchun tg(x) 
    qiymatini aniqlang va eng katta qiymatga ega bo„lgan elementni 1-o„ringa qo„ying. 
    21.
    Berilgan ro„yhatda qidirilayotgan element transpozitsiya usuli bilan 
    qancha murojaatda ro„yhat boshiga kelishini aniqlash dasturini tuzing.
    22.
    Massivdan boshiga qo„yish usuli yordamida key kalitli elementni izlash 
    dasturini tuzing. 
    23.
    Binar qidiruv usuli yordamida massivga yangi elementni kiriting. 
    24.
    Binar qidiruv usuli yordamida massivning key kalitli elementini 
    o„chiring. 
    25.
    Ro„yhatda transpozitsiya usuli yordamida toq elementlarni topish 
    dasturini tuzing. 
    26.
    Berilgan massivda key kalitli elementni ketma-ket va binar qidiruv 
    usullari yordamida izlang va qaysi usul ushbu qidiruv holatida samara berganligini 
    aniqlash dasturini keltiring. 
    27.
    Talabalar ismi va umumiy ballaridan iborat jadvaldan ketma-ket qidiruv 
    usuli bilan balli maksimal bo„lgan talabani toping. 
    28.
    Talabalar ismi va umumiy ballaridan iborat jadvaldan binar qidiruv usuli 
    yordamida so„ralgan talabaning umumiy balini chiqarish dasturini tuzing. 
    29.
    Boshiga qo„yish usuli yordamida talabalar ismlaridan iborat massiv 
    elementlariga ko„p marta murojaat qilib massivni qayta tartiblang. 
    30.
    Transpozisiya usuli yordamida talabalar ismlaridan iborat ro„yhat
    elementlariga ko„p marta murojaat qilib massivni qayta tartiblang. 


    110 

    Download 1,33 Mb.
    1   ...   42   43   44   45   46   47   48   49   ...   56




    Download 1,33 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    key kalitga mos elementni izlash chegaralarini aniqlab olamiz. Dastlab u  [0,n]

    Download 1,33 Mb.
    Pdf ko'rish