fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int binary_search(int a[], int n, int x) {
  5. int i = 0, j = n - 1;
  6. while (i <= j) {
  7. int m = (i + j) / 2;
  8. if (a[m] == x) return m;
  9. if (a[m] < x) i = m + 1;
  10. else j = m - 1;
  11. }
  12. return -1;
  13. }
  14.  
  15. int main() {
  16. int n, x, *a;
  17. scanf("%d %d", &n, &x);
  18. a = malloc(sizeof(int) * n);
  19. for (int i = 0; i < n; i++) scanf("%d", &a[i]);
  20.  
  21. int ans = binary_search(a, n, x);
  22. if (ans != -1) printf("a[%d] = %d\n", ans, a[ans]);
  23. else printf("not found\n");
  24.  
  25. free(a);
  26. return 0;
  27. }
Success #stdin #stdout 0s 5304KB
stdin
12 5
1 2 3 4 5 8 9 13 16 21 25 27
stdout
a[4] = 5