Advertisement
Falak_Ahmed_Shakib

binary search

Nov 12th, 2020 (edited)
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. binary search by while
  2.  
  3. #include<stdio.h>
  4. int main()
  5. {
  6. int i, n;
  7.  
  8. scanf("%d",&n);
  9.  
  10. int ara[n+1];
  11.  
  12. for(i=0;i<n;i++)scanf("%d",&ara[i]);
  13.  
  14.  
  15. int key,cnt=0;
  16.  
  17. scanf("%d",&key);
  18.  
  19. int b=0;
  20. int e=n-1;
  21. int mid=(b+e)/2;
  22. //printf("kk");
  23. while(b<=e)
  24. {
  25. // printf("%d %d \n",b,e);
  26.  
  27. if(ara[mid]==key)
  28. {
  29. cnt=1;
  30. break;
  31. }else if(ara[mid]>key)
  32. {
  33. e=mid-1;
  34. }else b=mid+1;
  35.  
  36.  
  37. mid=(b+e)/2;
  38.  
  39.  
  40. }
  41.  
  42.  
  43. if(cnt)printf("yes\n");
  44. else printf("no\n");
  45.  
  46.  
  47.  
  48. }
  49.  
  50.  
  51. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  52.  
  53.  
  54. binary search by recursion
  55.  
  56.  
  57.  
  58. #include<stdio.h>
  59. int flag=0;
  60. int binarySearch(int ara[], int b, int e, int key)
  61. {
  62.  
  63. // printf("%d %d \n",b,e);
  64. if(b>e)return -1;
  65.  
  66. int m=(b+e)/2;
  67.  
  68. if(ara[m]==key)return m;
  69. else if(ara[m]>key)binarySearch(ara,b,m-1,key);
  70. else binarySearch(ara,m+1,e,key);
  71.  
  72.  
  73. }
  74.  
  75. int main()
  76. {
  77. int i, n;
  78.  
  79. scanf("%d",&n);
  80.  
  81. int ara[n+1];
  82.  
  83. for(i=0;i<n;i++)scanf("%d",&ara[i]);
  84.  
  85.  
  86. int key;
  87.  
  88. scanf("%d",&key);
  89.  
  90.  
  91. int pos=binarySearch(ara,0,n-1,key);
  92.  
  93. if(pos==-1)printf("not found\n");
  94. else printf(" %d \n",pos);
  95.  
  96. }
  97.  
  98.  
  99.  
  100.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement