Junior — Middle
Принсипи кори алгоритми ҷустуҷӯи дугона ва қадамҳои асосии онро шарҳ диҳед.
sobes.tech AI
Ҷавоб аз AI
Илк иккилик қидирув — бу тартибланган массивда элементни самарали қидириш алгоритми. Унинг принципи қидириш ҳудудини давомий равишда яримга бўлиш ва қидирилаётган қийматни ўртадаги элемент билан солиштиришдан иборат.
Асосий қадамлар:
- Қидиришнинг бошланғич чегараларини аниқланг: сол ва ўнг индекслер.
- Ўртача индексли топинг: mid = (left + right) // 2.
- Қидирилаётган қийматни ўртадаги элемент билан солиштиринг.
- Агар улар тенг бўлса, mid индексли қайтаринг.
- Агар қидирилаётган қиймат кичик бўлса, ўнг чегарани mid - 1 га кўчиринг.
- Агар у катта бўлса, сол чегарасини mid + 1 га кўчиринг.
- 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