#include <iostream>
using namespace std;
int binarySearch(int arr[], int key, int n) {
int si = 0;
int ei = n-1;
while(si <= ei) {
int mid = si + (ei-si)/2;
if(arr[mid] == key) {
return mid;
} else if(arr[mid] < key) {
si = mid+1; // go to right
} else {
ei = mid-1; // go to left
}
}
return -1;
}
void printArr(int arr[], int n) {
for(int i=0; i<n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
int main() {
// binarySearch works on sorted array:
// O(logn) -> binary -> divide
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr)/sizeof(int);
int key = 4;
cout << "Array : ";
printArr(arr, n);
cout << "Element: " << key << " \nFound at index: " << binarySearch(arr, key, n);
return 0;
}
No comments:
Post a Comment