forked from Shailendra-Java/Data-Structures
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBinarySearch.cpp
More file actions
40 lines (31 loc) · 999 Bytes
/
BinarySearch.cpp
File metadata and controls
40 lines (31 loc) · 999 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include<iostream>
using namespace std;
int binarySearch(int arr[], int start, int end, int itemSearch)
{
if (end >= start)
{
int middle = start + (end - start)/2;
//if found at mid position
if (arr[middle] == itemSearch)
return middle;
// if item is smaller than mid element, search in left subarray
if (arr[middle] > itemSearch)
return binarySearch(arr, start, middle-1, itemSearch);
//else search in right subarray
return binarySearch(arr, middle+1, end, itemSearch);
}
//if element is not present return -1
return -1;
}
int main(void)
{
int array[] = {10, 15, 19, 24, 30};
int size = sizeof(array)/ sizeof(array[0]);
int itemSearch = 24;
int position = binarySearch(array, 0, size-1, itemSearch);
if(position<0)
cout<<"Element not present in the array";
else
cout<<"Element is present at position "<<position+1;
return 0;
}