Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Author: Asif Anwar(2019831045)
- */
- #include <bits/stdc++.h>
- using namespace std;
- int main()
- {
- int n;
- cout << "Enter the number of elements: ";
- cin >> n;
- int arr[n];
- cout << "Enter the elements: ";
- for(int i=0; i<n; i++) {
- cin >> arr[i];
- }
- int key;
- cout << "Enter the key you want to search: ";
- cin >> key;
- // searching for the first occurrence of the key value
- int begin = 0, end = n-1;
- int upBound = -1, lowBound = -1;
- while(begin<=end){
- int mid = begin + (end-begin)/2;
- if(key==arr[mid]) {
- lowBound = mid;
- end = mid-1;
- }
- else if(key<arr[mid]) {
- end = mid-1;
- }
- else begin = mid+1;
- }
- if(lowBound==-1) cout << "Not found\n";
- else cout << "First occurrence at pos: " << lowBound << "(0 indexed)"<< endl;
- // searching for the last occurrence of the key value
- begin = 0, end = n-1;
- while(begin<=end) {
- int mid = begin + (end-begin)/2;
- if(key==arr[mid]) {
- upBound = mid;
- begin = mid+1;
- }
- else if(arr[mid]>key) {
- end = mid-1;
- }
- else begin = mid+1;
- }
- if(upBound==-1) cout << "Not found\n";
- else cout << "Last occurrence at pos: " << upBound << "(0 indexed)"<< endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment