Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- int i = 0;
- int Rbinary_search(int a[], int l, int r, int key)
- {
- int found = 0, mid;
- if(l <= r)
- {
- mid = (l + r) / 2;
- printf("Step %d: Left %d Mid %d Right %d\n Mid Value: %d\n", i+1, l, mid, r, a[mid]);
- if(key == a[mid])
- {
- printf("%d is found\n", key);
- return i;
- }
- else if(key > a[mid]) Rbinary_search(a, mid+1, r, key); //idx = Rbinary_search(a, mid+1, r, key);
- else Rbinary_search(a, l, mid - 1, key);
- i++;
- }
- }
- int main()
- {
- int n;
- printf("Enter the size of the array: ", &n);
- scanf("%d", &n);
- int a[n], i;
- printf("Enter the elements: ");
- for(i = 0; i < n; i++) scanf("%d", &a[i]);
- int key;
- printf("Enter the value you want to search: ");
- scanf("%d", &key);
- printf("Find %d in the array:\n", key);
- int x = Rbinary_search(a, 0, n, key);
- if(x == 0) printf("%d is not found\n", key);
- else printf("Number of steps is %d\n", x+1);
- }
Add Comment
Please, Sign In to add comment