Advertisement
Imran2544

Binary Search (Recursive)

Sep 17th, 2018
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. int srch (int ar[], int r, int x, int l)
  4. {
  5.     if (r>=1) {
  6.         int mid= l+(r-1)/2;
  7.         if (x==ar[mid]) {
  8.             return mid;
  9.         }
  10.         else if (x>ar[mid]) {
  11.             return srch(ar, r, x, mid+1);
  12.         }
  13.         else {
  14.             return srch(ar, mid-1, x, l);
  15.         }
  16.     }
  17.     return -1;
  18. }
  19.  
  20. void swp (int *p, int *q)
  21. {
  22.     int tmp;
  23.     tmp=*p;
  24.     *p=*q;
  25.     *q=tmp;
  26. }
  27.  
  28. void srt(int a[], int n)
  29. {
  30.     int i, j;
  31.     for (i=0; i<n-1; i++) {
  32.         for (j=i+1; j<n; j++) {
  33.             if (a[i]>a[j]) {
  34.                 swp(&a[i], &a[j]);
  35.             }
  36.         }
  37.     }
  38. }
  39.  
  40. int main()
  41. {
  42.     int n, i, j;
  43.     scanf("%d", &n);
  44.     int a[n];
  45.     for (i=0; i<n; i++) {
  46.         scanf("%d", &a[i]);
  47.     }
  48.     srt(a, n);
  49.     int x;
  50.     scanf("%d", &x);
  51.     int z=srch(a, n-1, x, 0);
  52.     if (z==-1) {
  53.         printf("%d is not present in the array.\n", x);
  54.     }
  55.     else {
  56.         printf("%d is present in the array. It's the no.%d element after sorting.\n", x, z+1);
  57.     }
  58.     return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement