Skip to main content

Binary Search in C

#include<stdio.h>

int BinarySearch(int arr[],int l, int r,int num){
    printf("Entered Binary Search Function\n");
    int mid=0;
    printf("%d %d\n",l,r);
    if(l<=r){
        mid=l+(r-l)/2;
        printf("%d\n",mid);
        if(arr[mid]==num){
            return 1;
        }
        else if(arr[mid]<num){
            return BinarySearch(arr,mid+1,r,num);
        }
        else{
            return BinarySearch(arr,l,mid-1,num);
        }
    }
    return 0;
}

int main()
{
    int arr[] = {4,8,9,10,19,45};
    int num=0;
    printf("Enter Number to be searched\n");
    scanf("%d",&num);
    int r = sizeof(arr)/sizeof(int);
    //printf("%d",r);
    int res=BinarySearch(arr,0,r-1,num);
    if(res==1)
        printf("\nNumber Found\n");
    else
        printf("\nNumber Not Found\n");
    return 0;
}

Comments

Popular posts from this blog

BitWise Operators Explained in Short

Bitwise Operators :    Bitwise Operators do not operate on decimal value of the Number. They first convert the numbers into binary value & then they operate on it. Bitwise opeartors are not used with floating type variables. Bitwise AND :-   & Bitwise OR    :-   | Bitwise XOR :-   ^ Bitwise NOT :-   ~ LEFT SHIFT :- << RIGHT SHIFT :- >> Bitwise AND  & Example : N1 = 10 , N2 = 15 N1 & N2 In Binary  :                                                  0 0 1 0 1 0                                                   0 0 1 1 1 1  ...

Insertion Sort in C

#include<stdio.h> int main() {     int arr[]={8,5,7,4,3,0};     int n = sizeof(arr)/sizeof(int);     int key=0,i=0,j=0;     for(i=1;i<n;i++){         key=arr[i];         j=i-1;         while(j>=0 && arr[j]>key){             arr[j+1]=arr[j];             j--;         }         arr[j+1]=key;     }      for(i=0;i<n;i++){         printf("%d\t",arr[i]);     }     printf("\n");     return 0; }

Activity Selection Problem in Short

Activity Selection Problem is used extensively. Suppose a person is given n activities with their start & finish time. Select the maximum number of activities that can be performed by a single person, assuming that a person can only work on a single activity at a time. Greedy Approach:  set n equal to the max finish time  initialize set of selected activity with a 1    set k=1 loop m=2 to n    if start time of current activity is greater than the finish time of last activity            add the current activity to selected activity           set k=m