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