• Binar qidirish
  • for left < right { mid := (left + right) / 2 if




    Download 185,42 Kb.
    bet2/5
    Sana15.11.2023
    Hajmi185,42 Kb.
    #99352
    1   2   3   4   5
    Bog'liq
    malumotlar tuzilmasi va algoritm
    1-ШАХСИЙ ТОПШИРИҚ (4) (4), Nometall materiallar texnologiyasi. Karimov SH.A, slayd kurs ishi
    for left < right {
    mid := (left + right) / 2
    if a[mid] == condidate {
    return mid
    }
    if a[mid] < condidate {
    left = mid
    } else {
    right = mid
    }
    }
    return -1
    }
    Bu usul binar qidiruvni iterativ usuli deyiladi, shuningdek bu algoritmni rekursiya usulida ham yozish mumkin, rekursiv usulni erinmasangiz o'zingiz yozib ko'ring. Bitta urinishda ko'pchilik dasturchilar bu narsani to'g'ri yoza olishmaydi va bu normal holat, chunki xato bor joyda o'z ustida ishlash uchun imkoniyat bo'ladi.
    Endi bu qidiruv usullarini ayrim jihatlarini keltirib o'tamiz:

    • funksiyaga berilayotgan massiv Binar qidiruv uchun albatta o'sish tartibida bo'lishi talab qilinadi, chiziqli qidiruv uchun esa berilayotgan massiv qay tartibda bo'lishini ahamiyati yo'q

    • chiziqli qidiruvda elementlarni bittalab har birini tekshiriladi, binarda esa algoritmidan kelib chiqib chiziqliga nisbatan ancha kam solishtirish amali bajariladi, chiziqli qidiruvning ishlash vaqti ko'pi bilan O(n) va binar qidiruvniki ko'pi bilan O(log n)

    Binar qidirish — (eng: Binary search — ikkilik qidirish)- saralangan elementlar roʻyxatidan elementni topish uchun samarali algoritm. Ikkilik qidirish algoritmi ishlash gʻoyasiga koʻra „boʻlib tashla va hukmronlik qil“ paradigmasi asosida ishlaydi. Ikkilik qidiruvdan foydalanishning eng keng tarqalgan usullaridan biri bu massivdagi elementni topishdir. Misol uchun, Tycho-2 yulduzlar katalogida bizning galaktikamizdagi eng yorqin 2 539 913 ta yulduz haqida maʼlumot mavjud. Aytaylik, siz yulduz nomidan kelib chiqib, katalogdan maʼlum bir yulduzni qidirmoqchisiz. Agar dastur yulduzlar katalogidagi har bir yulduzni birinchisidan boshlab, chiziqli qidiruv algoritmida tekshirgan boʻlsa, eng yomon holatda kompyuter siz izlayotgan yulduzni topish uchun barcha 2 539 913 ta yulduzni tekshirishi kerak boʻlishi mumkin. Agar katalog yulduz nomlari boʻyicha alifbo tartibida tartiblangan boʻlsa, ikkilik qidiruv, hatto eng yomon holatda ham 22 dan ortiq yulduzni tekshirishi shart emas edi.


    Download 185,42 Kb.
    1   2   3   4   5




    Download 185,42 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    for left < right { mid := (left + right) / 2 if

    Download 185,42 Kb.