diff --git a/searching_algos/binary_search.cpp b/searching_algos/binary_search.cpp index 58a4f68..2475ea4 100644 --- a/searching_algos/binary_search.cpp +++ b/searching_algos/binary_search.cpp @@ -3,15 +3,21 @@ int binary_search(int arr[],int size, int key) int mid = size / 2; if(arr[mid] == key) return mid; - while(mid > 0 && mid < size) + int low = 0; + int high = size - 1; + + while(arr[mid] != key) { if(key < arr[mid]) { - mid = mid / 2; + high = mid; + mid = low + high / 2; } else if(key > arr[mid]) { - + low = mid; + mid = low + high / 2; } } + return (arr[mid] == key) ? mid : -1; } \ No newline at end of file