Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- binary search by while
- #include<stdio.h>
- int main()
- {
- int i, n;
- scanf("%d",&n);
- int ara[n+1];
- for(i=0;i<n;i++)scanf("%d",&ara[i]);
- int key,cnt=0;
- scanf("%d",&key);
- int b=0;
- int e=n-1;
- int mid=(b+e)/2;
- //printf("kk");
- while(b<=e)
- {
- // printf("%d %d \n",b,e);
- if(ara[mid]==key)
- {
- cnt=1;
- break;
- }else if(ara[mid]>key)
- {
- e=mid-1;
- }else b=mid+1;
- mid=(b+e)/2;
- }
- if(cnt)printf("yes\n");
- else printf("no\n");
- }
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- binary search by recursion
- #include<stdio.h>
- int flag=0;
- int binarySearch(int ara[], int b, int e, int key)
- {
- // printf("%d %d \n",b,e);
- if(b>e)return -1;
- int m=(b+e)/2;
- if(ara[m]==key)return m;
- else if(ara[m]>key)binarySearch(ara,b,m-1,key);
- else binarySearch(ara,m+1,e,key);
- }
- int main()
- {
- int i, n;
- scanf("%d",&n);
- int ara[n+1];
- for(i=0;i<n;i++)scanf("%d",&ara[i]);
- int key;
- scanf("%d",&key);
- int pos=binarySearch(ara,0,n-1,key);
- if(pos==-1)printf("not found\n");
- else printf(" %d \n",pos);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement