Qidiruv usullarini tadqiq qilish


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



Download 174,37 Kb.
bet10/11
Sana30.12.2021
Hajmi174,37 Kb.
#89544
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
2 - LABORATORIYA ISHI 2-qidiruv

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

  • Agar low<=hi bo‘lsa, oraliq o‘rtasini hisoblaymiz. mid=(low+hi)/2

  • 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.

  • 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.

  • 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.

  • 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;

    struct Guruh{

    string fio,adres;

    }talaba[n];

    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;

    else low = mid + 1;

    }

    if(search!=-1) cout<<"qidirilayotgan el "<

    else {cout<

    system("PAUSE");

    return EXIT_SUCCESS;

    }

    while(talaba[search-1].adres==key) search--;

    while(talaba[search].adres==key) {

    cout<

    search++; }

    system("pause");

    }


    Download 174,37 Kb.

    Do'stlaringiz bilan baham:
  • 1   2   3   4   5   6   7   8   9   10   11




    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