Asosiy tarkibga o‘tish
CodeArena
Kirish
Kurslar

Algoritmlar · Saralangan ma’lumotda va javob bo‘yicha ikkilik qidiruv

Ikkilik qidiruv

Medium 3 masala

Boshlash

Nazariya

Ikkilik qidiruv saralangan ro‘yxatda qidiruv oralig‘ini har qadamda ikki baravar qisqartiradi: log₂(10⁹) ≈ 30 qadam.

from bisect import bisect_left, bisect_right
k = bisect_right(a, x)     # x dan katta bo‘lmaganlar soni

lo, hi = 0, 10**9          # javob bo‘yicha qidiruv
while lo < hi:
    mid = (lo + hi) // 2
    if ok(mid): hi = mid
    else: lo = mid + 1

Javob bo‘yicha qidiruv

Agar «X yetarlimi?» savoli monoton bo‘lsa (X ishlasa, kattaroq ham ishlaydi), eng kichik X ni ikkilik qidiruv bilan toping. Chegaralar va mid ni yaxlitlashga ehtiyot bo‘ling — cheksiz sikl shu yerdan chiqadi.

Easy masalalar 1

Medium masalalar 1

Hard masalalar 1

Menyu

Ko‘rinish

Klaviatura yorliqlari

Ctrl K yoki /
Qidirish va buyruqlar
g h
Bosh sahifa
g p
Masalalar
g c
Musobaqalar
g r
Reyting
Ctrl Enter
Masala sahifasida — yechimni yuborish
?
Shu oyna