Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void binary_search(const int *arr, int key, int n, int &entry_1, int &entry_2){
  5. int mid;
  6. int left = 0;
  7. int right = n;
  8. while (left < right)
  9. {
  10. if(left < right) {
  11. mid = (left + right) / 2;
  12. if (arr[mid] < key) {
  13. left = mid + 1;
  14. }
  15. else {
  16. right = mid;
  17. }
  18. }
  19. }
  20. entry_1 = left + 1;
  21. left = 0;
  22. right = n;
  23. while (left < right)
  24. {
  25. if(left < right) {
  26. mid = (left + right) / 2;
  27. if (arr[mid] <= key) {
  28. left = mid + 1;
  29. }
  30. else {
  31. right = mid;
  32. }
  33. }
  34. }
  35. entry_2 = left;
  36. if (entry_1 > entry_2) {
  37. entry_1 = -1;
  38. entry_2 = -1;
  39. }
  40. }
  41.  
  42. int main() {
  43. freopen("binsearch.in", "r", stdin);
  44. freopen("binsearch.out", "w", stdout);
  45. int n, m;
  46. cin>>n;
  47. int *array = new int[n];
  48. for(int i=0; i<n; i++){
  49. cin>>array[i];
  50. }
  51. cin>>m;
  52. int request, entry_1, entry_2;
  53. for(int i=0; i<m; i++) {
  54. cin>>request;
  55. binary_search(array, request, n, entry_1, entry_2);
  56. cout<<entry_1<<" "<<entry_2<<"\n";
  57. }
  58. delete [] array;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement