Binary search સાજેલ એરેમાં ટার્ગેટ શોધે છે, સર્ચ શ્રેણીને વારંવાર અર્ધેણી કરીને। દરેક સરખામણી બાકીના અડધા તત્વોને દૂર કરે છે, O(log n) સમય આપે છે।
વિચાર
મધ્યમ તત્વ તરફ જુઓ. જો તે ટાર્ગેટ સમાન હોય તો કરી ગયા. જો ટાર્ગેટ નાનું હોય તો ડાબી અર્ધ સર્ચ કરો; જો મોટું હોય તો જમણી અર્ધ સર્ચ કરો. જ્યાં સુધી મળે નહીં અથવા શ્રેણી ખાલી ન થાય ત્યાં સુધી પુનરાવર્તન કરો।
ઉદાહરણ
():
lo, hi = , (arr) -
lo <= hi:
mid = (lo + hi) //
arr[mid] == target:
mid
arr[mid] < target:
lo = mid +
:
hi = mid -
-
binary_search([, , , , ], )
