Asosiy kontentga o‘tish
Informatik.uz
1-bob. Algoritmlar

Qidirish algoritmlari: chiziqli va ikkilik

Chiziqli qidirish har qanday ro‘yxatda ishlaydi, ikkilik qidirish esa saralangan massivda juda tez natija beradi. Ikkala usulni, ularning farqini va qachon qaysi birini tanlashni o‘rganasiz.

2-mavzu / 112 daq o‘qishYangilangan: 27-oktabr, 2026
Mavzular ro‘yxati (2 / 11)

Qidirish — to‘plamda kerakli elementni topish yoki uning yo‘qligini aniqlash. Eng sodda usul — chiziqli qidirish: elementlar boshidan birin-ketin tekshiriladi va topilganda to‘xtatiladi. U har qanday ro‘yxatda ishlaydi, lekin eng yomon holatda barcha n ta elementni ko‘rib chiqishga to‘g‘ri keladi. Python’da ro‘yxat uchun x in a yoki a.index(x) aynan shunday ishlaydi.

Ikkilik qidirish faqat saralangan massivda ishlaydi. U kerakli sonni o‘rtadagi element bilan solishtiradi: kerakli son kichik bo‘lsa, o‘ng yarmi tashlab yuboriladi, katta bo‘lsa — chap yarmi. Qolgan qismda jarayon takrorlanadi, shuning uchun har qadamda qidiruv sohasi taxminan ikki baravar qisqaradi. O‘rtadagi indeks mid = (low + high) // 2 formulasi bilan topiladi.

Saralangan 2 5 8 12 16 23 38 56 72 91 massivda 23 ni qidiraylik. 1-qadamda o‘rtadagi 16 kerakli sondan kichik, shuning uchun qidiruv o‘ng yarmida (23 38 56 72 91) davom etadi. 2-qadamda o‘rtadagi 56 katta, demak, chap qismi (23 38) qoladi; 3-qadamda o‘rtadagi element 23 ga teng — son topildi.

Chiziqli qidirishda solishtirishlar soni elementlar soniga mutanosib, ikkilik qidirishda esa ko‘pi bilan taxminan log2 n ta. Masalan, 1 000 000 ta elementli saralangan massivda ikkilik qidirish ko‘pi bilan 20 qadam bajaradi, chiziqli qidirish esa million tagacha solishtirish qiladi. Biroq massivni avval saralash kerak bo‘lsa, bitta qidirish uchun chiziqli usul oddiyroq; ko‘p marta qidirilganda esa bir marta saralab, keyin ikkilik usuldan foydalanish foydali.

Asosiy xulosalar

  • Chiziqli qidirish elementlarni birin-ketin tekshiradi va har qanday ro‘yxatda ishlaydi.
  • Ikkilik qidirish faqat saralangan massivda ishlaydi.
  • Ikkilik qidirish har qadamda qidiruv sohasini taxminan ikki baravar qisqartiradi.
  • 1 000 000 elementda ikkilik qidirish ko‘pi bilan 20 qadam, chiziqli qidirish esa million tagacha solishtirish bajaradi.
  • Ko‘p marta qidirishdan oldin massivni bir marta saralab qo‘yish foydali.

Amaliy topshiriqlar

  1. Saralangan 3 7 11 15 19 24 31 40 massivda 24 sonini ikkilik qidirish usuli bilan qo‘lda toping: har qadamda low, high va mid qiymatlarini jadvalga yozing.
  2. Ikkilik qidirish funksiyasini Python’da yozing: u elementning indeksini qaytarsin, element topilmasa -1 qaytarsin.
  3. Chiziqli qidirish funksiyasini ham yozing, ikkala funksiyaga solishtirishlar sanagichini qo‘shing va 1000 ta sondan iborat saralangan ro‘yxatda sinab, solishtirishlar sonini taqqoslang.

Mustahkamlash savollari

O‘zingizni sinab ko‘ring: avval o‘ylab ko‘ring, keyin javobni oching.

  1. 1Nima uchun ikkilik qidirishni saralanmagan massivda qo‘llab bo‘lmaydi?
    Yarmini tashlab yuborish faqat massiv tartiblangan bo‘lsa to‘g‘ri; aks holda kerakli element tashlab yuborilgan yarmida qolib ketishi mumkin.
  2. 2Ikkilik qidirishda har qadamdan so‘ng qidiruv sohasi qanday o‘zgaradi?
    Taxminan ikki baravar qisqaradi.
  3. 3Bitta elementni bir marta qidirish kerak bo‘lsa, nega ko‘pincha chiziqli qidirish qulayroq?
    Ro‘yxatni saralashning o‘zi chiziqli qidirishdan ko‘ra ko‘proq vaqt oladi, shuning uchun bitta qidirish uchun saralash ortiqcha xarajat bo‘ladi.

0 / 11 mavzu o‘tildi

Kirib belgilash
Informatika 11-sinf darsligi muqovasi
DarslikdaInformatika — 11-sinf