Promi_38

binary search using recursion

Nov 19th, 2020 (edited)
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.92 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. int i = 0;
  4.  
  5. int Rbinary_search(int a[], int l, int r, int key)
  6. {
  7.     int found = 0, mid;
  8.     if(l <= r)
  9.     {
  10.         mid = (l + r) / 2;
  11.         printf("Step %d: Left %d Mid %d Right %d\n        Mid Value: %d\n", i+1, l, mid, r, a[mid]);
  12.         if(key == a[mid])
  13.         {
  14.             printf("%d is found\n", key);
  15.             return i;
  16.         }
  17.         else if(key > a[mid]) Rbinary_search(a, mid+1, r, key); //idx = Rbinary_search(a, mid+1, r, key);
  18.         else Rbinary_search(a, l, mid - 1, key);
  19.         i++;
  20.     }
  21. }
  22.  
  23. int main()
  24. {
  25.     int n;
  26.     printf("Enter the size of the array: ", &n);
  27.     scanf("%d", &n);
  28.    
  29.     int a[n], i;
  30.     printf("Enter the elements: ");
  31.     for(i = 0; i < n; i++) scanf("%d", &a[i]);
  32.  
  33.     int key;
  34.     printf("Enter the value you want to search: ");
  35.     scanf("%d", &key);
  36.     printf("Find %d in the array:\n", key);
  37.  
  38.     int x = Rbinary_search(a, 0, n, key);
  39.     if(x == 0) printf("%d is not found\n", key);
  40.     else printf("Number of steps is %d\n", x+1);
  41.    
  42. }
  43.  
Add Comment
Please, Sign In to add comment