• 21. Qiliruvning Interpoliyatsiya usulining S++ dasturlash tilidagi algoritmini yozing va ishlashini tushuntirib bering.
  • Binar qidiruv algoritmining asosiy funktsiyasini S++ dasturlash tilida yozing va uning ishlashini tushuntirib bering?




    Download 1.85 Mb.
    bet11/56
    Sana24.02.2022
    Hajmi1.85 Mb.
    #18040
    1   ...   7   8   9   10   11   12   13   14   ...   56
    Bog'liq
    MTA Yakuniy nazorat Hammasi
    Diskret tuzilmalar 1-M.Ish, 2 5359587219348652922, ARXEOLOGIYADA ANIQ VA TABIIY FANLAR, Falsafa 1-mustaqil ish, ELEKTRON TIJORAT VA BIZNES ASOSLAR, 1-LAB OCHILOV AZIZBEK, 6-amaliy iah Tarmoqlararo ekran vositasi yordamida tarmoq himoy, Aliyev-Tizimli dasturiy taminot, @idum uz tavsifnoma namunasi, TURIZMDA TUROPERATORLIK FAOLIYATINI RIVOJLANTIRISH, TURIZMDA TUROPERATORLIK, Biznesniloyihalash, 1665071471, Axborot xavfsizligi yakuniy testla
    20. Binar qidiruv algoritmining asosiy funktsiyasini S++ dasturlash tilida yozing va uning ishlashini tushuntirib bering?
    int Search_Binary (int arr[], int left, int right, int key) {
    int midd = 0;
    while (1) {
    midd = (left + right) / 2;
    if (key < arr[midd]) // agar qidirilayotgan element kichik bo’lsa
    right = midd - 1; // qidiruvning o’ng chegarasini aniqlash
    else if (key > arr[midd]) // agar qidirilayotgan element katta bo’lsa
    left = midd + 1; // qidiruvning chap chegarasini aniqlash
    else  // yoki (qiymat teng)
    return midd; // funktsiya ushbu yacheyka qiymatini qaytaradi
    if (left > right) // agar chegara mos kelmasa
    return -1; } }
    Agar qidirilayotgan kalit qiymatli element o’rta qiymatdan kichik bo’lsa, algoritm o’rta qiymatdan katta elementlar joylashgan qismini tekshirmaydi. Qidiruvning o’ng tomondagi chegarasi (midd - 1) ga joylashadi. Hosil bo’lgan qism massivni yana 2 ga bo’lamiz.
    Qidiruv kaliti yana o’rta elementga teng emas, katta. Endi qidiruvning chap chegarasi (midd + 1) ga joylashadi.
    Uchinchi qadamda o’rta element 3 indeksli elementga teng:
    (3 + 4) / 2 = 3. U kalitga teng. Algoritm o’z ishini yakunlaydi.


    21. Qiliruvning Interpoliyatsiya usulining S++ dasturlash tilidagi algoritmini yozing va ishlashini tushuntirib bering.
    Interpolyatsiya — bu butun soha va qidirilayotgan qiymatga o’xshash elementlar joylashgan masofani hisoblash orqali qidiruv sohasini aniqlash usuli hisoblanadi. Bunga misol sifatida geometriyadagi o’xshash uchburchaklarni olish mumkin, bunda burchaklar qiymati bir xil, lekin proportsiyasi har xil bo’ladi. Interpolyatsiya usulida ham aynan shunday printsipdan foydalaniladi.
    Qidiruv sohasi uzunligi soha boshidan kerakli songacha (masalan, markazdagi elementgacha) masofa hisoblanadi. Hisoblash element nomeri va qiymatlari bo’yicha amalga oshiriladi, undan keyin aniqlangan soha uzunligi bilan qiymatlar orasidagi uzunlik ko’paytiriladi va natijaga soha boshining qiymati qo’shilib, qidirilayotgan qiymat aniqlanadi.
    Yuqorida keltirilgan algoritmning C++ dagi ko’rinishi quyidagicha:
    #include
    using namespace std;
    int main() {
    int A[] ={ 1, 2, 4, 6, 7, 89, 123, 231, 1000, 1235 };
    int x = 0; int a = 0; int b = 9;
    int d = 1235; //izlanayotgan element
    bool found;
    for (found = false; (A[a] < d) && (A[b] > d) && !found; )
    { x = a + ((d - A[a]) * (b - a)) / (A[b] - A[a]);
    if (A[x] < d) a = x + 1;
    else if (A[x] > d) b = x - 1;
    else found = true; }
    if (A[a] == d) cout << d << " element topildi indeksi " << a << " ga teng" << endl;
    else if (A[b] == d) cout << d << " element topildi indeksi " << b << " ga teng" << endl;
    else cout << "Topilmadi" << endl;
    return 0; }

    Download 1.85 Mb.
    1   ...   7   8   9   10   11   12   13   14   ...   56




    Download 1.85 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Binar qidiruv algoritmining asosiy funktsiyasini S++ dasturlash tilida yozing va uning ishlashini tushuntirib bering?

    Download 1.85 Mb.