Binary Search

  1. //Binary Search   
  2. //Time Complexity  
  3. //Best Case O(1)  
  4. //Worst Case O(logn)  
  5.   
  6. #include <stdio.h>  
  7. #include <conio.h>  
  8.   
  9. int BinarySearch(int a[],int n,int search);  
  10. int main()  
  11. {  
  12.     printf("Binary Search\n");  
  13.     int arr[100],n,search,result=0;  
  14.     printf("Enter the number of elements in the array\n");  
  15.     scanf("%d",&n);  
  16.     printf("Enter the array elements in Ascending order");  
  17.     for(int i=0;i<n;i++)  
  18.     {  
  19.         scanf("%d",&arr[i]);  
  20.     }  
  21.     printf("The entered array elements are");  
  22.     for(int i=0;i<n;i++)  
  23.     {  
  24.         printf("%d\n",arr[i]);  
  25.     }  
  26.     printf("Enter the search element\n");  
  27.     scanf("%d",&search);  
  28. result=BinarySearch(arr,n,search);  
  29. if(result==-1)  
  30. {  
  31.     printf("Element not found\n");  
  32. }  
  33. else  
  34. {  
  35.     printf("Element Found at position %d\n",result);  
  36. }  
  37.     return 0;  
  38. }  
  39. int BinarySearch(int a[],int n,int search)  
  40. {  
  41. int start=0,mid=0;  
  42. int end=n-1;  
  43. while(start<=end)  
  44. {  
  45. mid=(start+end)/2;  
  46. if(search==a[mid])  
  47. return mid;  
  48. else if(search<a[mid])  
  49. {  
  50.     end=mid-1;  
  51. }  
  52. else if(search>a[mid]){  
  53.     start=mid+1;  
  54.   
  55. }  
  56. }  
  57. return -1;  
  58. }  
  59. Download Link:https://github.com/kaushiks90/SearchingAlogithms