• Binar qidiruv
  • Binar qidiruv( Binary Search )




    Download 1,25 Mb.
    bet2/5
    Sana13.12.2023
    Hajmi1,25 Mb.
    #117905
    1   2   3   4   5
    Bog'liq
    malumotlar tuzilmasi
    320, 1.«Elastiklik» termini 1885 yilda ilk bor kim tomonidan talab va, Google Docsda hujjatlarni birgalikda tahrirlash, Google Formsda onlayn savolnomalar hamda testlar yaratish, Konvertatsiya fayllarni bir formatdan boshqa formatga o’tkazish, 2-Mustaqil ta'lim, 23-may 3-topshiriq, Reja Pedagogik texnologiyalarning ilmiy asoslari, 4 вариант, TDA, Документ Microsoft Word, Ahror1, Kompyuter grafikasi # rgb rang modeli qaerda ishlatiladi, Doc150
    Binar qidiruv( Binary Search )

    Aytaylik bizga tartiblangan n ta elementdan iborat arr[] massiv berilgan bo'lsin, va berilgan x ni arr[] ichidan qidirish funksiyasini tuzish sharti qo'yilsin.
    Bu holatda eng oson yo'l sifatida chiziqli qidiruvni misol keltirish mumkin. Ammo bu usulning vaqt davomiyligi O(n) ni tashkil qiladi. Xuddi shu vazifa uchun biz binar qidir algoritmini ishlatsak bo'ladi.
    Binar qidiruv
    Qiyinlik darajasi: 5/10.
    Eng zo'r ko'rsatkichi(vaqt): O(1)
    Eng yomon ko'rsatkichi(vaqt): O(log n)
    O'rtacha ko'rsatkichi(vaqt): O( log n)
    Binar qidiruvning asosiy g'oyalaridan biri ketma-ket ikkiga bo'lishga asoslanadi, ya'ni berilgan x ni massivning o'rtadagi elementi bilan solishtiradi, agar katta bo'lsa oxiri va o'rtasi orasidagi massivni oladi, agar kichkina bo'lsa boshi va o'rtasi orasidagi massivni oladi, va har safar shu jarayon takrorlanib boradi toki x element solishtirilayotgan massivning elementga teng bo'lgunicha yoki massivning elementlari qolmaguncha.

    Biz bitta taqqoslashdan so'ng massivning yarim elementlarini hisobga olmasak ham bo'ladi.
    1. x ni o'rtadagi element bilan solishtiramiz.
    2. Agar rost bo'lsa, o'rtadagi elementni qaytaramiz.
    3. Agar x katta bo'lsa, x ni massivni o'ng yarmini ichidan qidiramiz, yuqoridagi ketma-ketlikni bajargan holda.
    4. Aks holda chap yarmi bilan binar qidiruvni amalga oshiramiz.
    Quyida Binar qidiruvning rekursiya orqali amalga oshiramiz.
    // C++ tilida rekursiyali Binar Qidiruv
    #include
    // Rekursiyali qidiruv funksiyasi. U massivdan
    // x qaysi o'rinda turganini qaytaradi,
    // yoki -1
    int binarqidiruv(int arr[], int l, int r, int x)
    {
    if (r >= l)
    {
    int mid = l + (r - l)/2;
    // Agar element x ga teng bo'lsa
    // o'zi qaytadi
    if (arr[mid] == x)

    Download 1,25 Mb.
    1   2   3   4   5




    Download 1,25 Mb.