fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int binary_search(int a[], int n, int x){
  5.  
  6. int lef = 0;
  7. int rig = n - 1;
  8. int mid;
  9.  
  10. while(lef <= rig){
  11.  
  12. mid = (lef + rig) / 2;
  13.  
  14. if(a[mid] == x){
  15. return mid;
  16. }
  17. else if(x < a[mid]){
  18. rig = mid - 1;
  19. }
  20. else{
  21. lef = mid + 1;
  22. }
  23. }
  24.  
  25. return -1;
  26. }
  27.  
  28. int main(void){
  29. int n,x,i;
  30. int *a;
  31. int ans=-1;
  32.  
  33. scanf("%d %d",&n,&x);
  34.  
  35. a=(int*)malloc(sizeof(int)*n);
  36.  
  37. for(i=0;i<n;i++){
  38. scanf("%d",&a[i]);
  39. }
  40.  
  41. ans=binary_search(a,n,x);
  42.  
  43. if(ans!=-1)
  44. printf("a[%d] = %d\n",ans,a[ans]);
  45. else
  46. printf("not found\n");
  47.  
  48. free(a);
  49. return 0;
  50. }
Success #stdin #stdout 0s 5324KB
stdin
12 5
1 2 3 4 5 8 9 13 16 21 25 27
stdout
a[4] = 5