Test gift and xml Ma’lumot nima?


Biz chiziqli qidiruv algoritmlarini qarab chiqdik. Qidiruvning boshqa algoritmlari ham mavjud



Yüklə 0,77 Mb.
səhifə9/73
tarix14.12.2023
ölçüsü0,77 Mb.
#177632
1   ...   5   6   7   8   9   10   11   12   ...   73
Test gift and xml-fayllar.org


Biz chiziqli qidiruv algoritmlarini qarab chiqdik. Qidiruvning boshqa algoritmlari ham mavjud.



  • Masalan, ikkilik (binar) qidiruv algoritmi.



  • Biz yuqorida chiziqli qidiruv algorimtlaridan indeksli ketma-ket qidirish usulini qarab chiqdik. Bunda qayta ishlanayotgan tuzilma elementlarini saralangan bo’lishi kerak edi.



  • Xuddi shunday binar qidiruv algoritmi ham saralangan tuzilmalar ustida qo’llanilsa, yuqori samara beradi.



  • Faraz qilaylik, bizga 12 ta elementdan iborat, o’sish tartibida saralangan quyidagi massiv berilgan bo’lsin:




    • Foydalanuvchi tomonidan kiritilgan qidiruv kaliti asosida qidirilayotgan elementni topish masalasi qo’yilgan. Masalan, kalit 4 ga teng bo’lsin.



    • Agar C – taqqoslashlar soni va n – jadvaldagi elementlar soni bo’lsa, u holda




    • Masalan, n = 1024, bo’lsa,



    Ketma-ket qidiruvda C = 512, binar qidiruvda esa C = 10.



    • Agar katta hajmdagi ma’lumotlar ichida qidiruv amalga oshirilayotgan bo’lsa, u holda binar va indeksli ketma-ket qidiruvni umumlashtirib olib borish mumkin. Sababi, har ikkala qidiruv ham tartiblangan massivda amalga oshiriladi.



    Bu algoritmning kamchiligi massiv oldindan saralangan bo’lishi talab etilishidir.
    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.



    • Yüklə 0,77 Mb.

      Dostları ilə paylaş:
  • 1   ...   5   6   7   8   9   10   11   12   ...   73




    Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
    rəhbərliyinə müraciət

    gir | qeydiyyatdan keç
        Ana səhifə


    yükləyin