Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void binary_search(const int *arr, int key, int n, int &entry_1, int &entry_2){
- int mid;
- int left = 0;
- int right = n;
- while (left < right)
- {
- if(left < right) {
- mid = (left + right) / 2;
- if (arr[mid] < key) {
- left = mid + 1;
- }
- else {
- right = mid;
- }
- }
- }
- entry_1 = left + 1;
- left = 0;
- right = n;
- while (left < right)
- {
- if(left < right) {
- mid = (left + right) / 2;
- if (arr[mid] <= key) {
- left = mid + 1;
- }
- else {
- right = mid;
- }
- }
- }
- entry_2 = left;
- if (entry_1 > entry_2) {
- entry_1 = -1;
- entry_2 = -1;
- }
- }
- int main() {
- freopen("binsearch.in", "r", stdin);
- freopen("binsearch.out", "w", stdout);
- int n, m;
- cin>>n;
- int *array = new int[n];
- for(int i=0; i<n; i++){
- cin>>array[i];
- }
- cin>>m;
- int request, entry_1, entry_2;
- for(int i=0; i<m; i++) {
- cin>>request;
- binary_search(array, request, n, entry_1, entry_2);
- cout<<entry_1<<" "<<entry_2<<"\n";
- }
- delete [] array;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement