Sobes.tech
Junior — Middle

Принсипи кори алгоритми ҷустуҷӯи дугона ва қадамҳои асосии онро шарҳ диҳед.

sobes.tech AI

Ҷавоб аз AI

Илк иккилик қидирув — бу тартибланган массивда элементни самарали қидириш алгоритми. Унинг принципи қидириш ҳудудини давомий равишда яримга бўлиш ва қидирилаётган қийматни ўртадаги элемент билан солиштиришдан иборат.

Асосий қадамлар:

  1. Қидиришнинг бошланғич чегараларини аниқланг: сол ва ўнг индекслер.
  2. Ўртача индексли топинг: mid = (left + right) // 2.
  3. Қидирилаётган қийматни ўртадаги элемент билан солиштиринг.
    • Агар улар тенг бўлса, mid индексли қайтаринг.
    • Агар қидирилаётган қиймат кичик бўлса, ўнг чегарани mid - 1 га кўчиринг.
    • Агар у катта бўлса, сол чегарасини mid + 1 га кўчиринг.
  4. 2-3 қадамларни такрорланг, сол чегара ўнгдан ошмаслиги учун.

Агар элемент топилмаса, масалан, -1 қайтаринг.

Python мисоли:

def binary_search(arr, target):
    left, right = 0, len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1