Data Structure : Searching Algorithms using C and C++

Data Structure : Searching Algorithms using C and C++


Algorithms :

  1. Linear Search
  2. Binary Search

Q1. Linear Search Algorithm.

Ans. Using C

// c program for Linear search

#include<stdio.h>
#include<conio.h>

int linear_search(int [],int,int);

int main()
{
    int number[10],ele,posi,n=10,i;

    printf("\n\t\t\t\t\t[ Element Search Using Binary Search ]\n");
    printf("\n Enter any 10 number >>| ");

    for(i=0;i<n;i++)
    {
        scanf("%d",&number[i]);
    }

    printf(" Which element do you want to search >>| ");
    scanf("%d",&ele);

    posi=linear_search(number,ele,n);
    if(posi!= -1)
    {
        printf("\n Element %d found at %d...",ele,posi);
    }
    else
    {
        printf("\n Element not found...");
    }

    getch();
    return 0;
}

int linear_search(int number[],int ele,int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        if(number[i]==ele)
        {
            return i+1;
        }
    }
    return -1;
}

Ans. Using C++

// cpp program for Linear search

#include<iostream>
#include<conio.h>
using namespace std;

int linear_search(int [],int,int);

int main()
{
    int number[10],ele,posi,n=10;

    cout<<"\n\t\t\t\t\t[ Element Search Using Binary Search ]\n";
    cout<<"\n Enter any 10 number >>| ";

    for(int i=0;i<n;i++)
    {
        cin>>number[i];
    }

    cout<<" Which element do you want to search >>| ";
    cin>>ele;

    posi=linear_search(number,ele,n);
    if(posi!= -1)
    {
        cout<<"\n Element "<<ele<<" found at "<<posi<<"...";
    }
    else
    {
        cout<<"\n Element not found...";
    }

    getch();
    return 0;
}

int linear_search(int number[],int ele,int n)
{
    for(int i=0;i<n;i++)
    {
        if(number[i]==ele)
        {
            return i+1;
        }
    }
    return -1;
}

Try and run.

// Try and run.


Q2. Binary Search Algorithm.

Ans. Using C

// c program for binary search

#include<stdio.h>
#include<conio.h>
using namespace std;

void sort(int *,int);
int binary_search(int [],int,int,int);

int main()
{
    int number[10],ele,posi,n=10;

    printf("\n\t\t\t\t\t[ Element Search Using Binary Search ]\n");
    printf("\n Enter any 10 number >>| ");

    for(int i=0;i<n;i++)
    {
        scanf("%d",&number[i]);
    }

    sort(number,n);

    printf("\n Here is the sort elements ==> ");
    for(int i=0;i<n;i++)
    {
        printf(" %d,",number[i]);
    }

    printf("\n Which element do you want to search >>| ");
    scanf("%d",&ele);

    posi=binary_search(number,ele,0,n-1);
    printf("\n");

    if(posi!= -1)
    {
        printf("\n Element %d found at %d...",ele,posi);
    }
    else
    {
        printf("\n Element not found...");
    }

    getch();
    return 0;
}

void sort(int *arr,int count)
{
    int a,i,j;
    for(i=0;i<count-1;i++)
    {
        for(j=0;j<count-1;j++)
        {
            if(arr[j]>arr[j+1])
            {
                a=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=a;
            }
        }
    }
}

int binary_search(int number[],int ele,int min,int max)
{
    int mid;
    if(min>max)
    {
        return -1;
    }
    else
    {
        mid=(min+max)/2;
        printf("\n Min = %d  Mid = %d  Max = %d",min+1,mid+1,max+1);

        if(number[mid]==ele)
        {
            return mid+1;
        }
        else if(number[mid]>ele)
        {
            return binary_search(number,ele,min,mid-1);
        }
        else if(number[mid]<ele)
        {
            return binary_search(number,ele,mid+1,max);
        }
    }
}

Ans. Using C++

// cpp program for binary search

#include<iostream>
#include<conio.h>
using namespace std;

void sort(int *,int);
int binary_search(int [],int,int,int);

int main()
{
    int number[10],ele,posi,n=10;

    cout<<"\n\t\t\t\t\t[ Element Search Using Binary Search ]\n";
    cout<<"\n Enter any 10 number >>| ";
    for(int i=0;i<n;i++)
    {
        cin>>number[i];
    }

    sort(number,n);
    cout<<"\n Here is the sort elements ==> ";
    for(int i=0;i<n;i++)
    {
        cout<<" "<<number[i]<<",";
    }

    cout<<"\n Which element do you want to search >>| ";
    cin>>ele;
    posi=binary_search(number,ele,0,n-1);
    cout<<"\n";
    if(posi!= -1)
    {
        cout<<"\n Element "<<ele<<" found at "<<posi<<"...";
    }
    else
    {
        cout<<"\n Element not found...";
    }

    getch();
    return 0;
}

void sort(int *arr,int count)
{
    int a;
    for(int i=0;i<count-1;i++)
    {
        for(int j=0;j<count-1;j++)
        {
            if(arr[j]>arr[j+1]) 
            {
                a=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=a;
            }
        }
    }
}

int binary_search(int number[],int ele,int min,int max)
{
    if(min>max)
    {
        return -1;
    }
    else
    {
        int mid;
        mid=(min+max)/2;
        cout<<"\n Min = "<<min+1<<"  Mid = "<<mid+1<<"  Max = "<<max+1;
        if(number[mid]==ele)
        {
            return mid+1;
        }
        else if(number[mid]>ele)
        {
            return binary_search(number,ele,min,mid-1);
        }
        else if(number[mid]<ele)
        {
            return binary_search(number,ele,mid+1,max);
        }
    }
}

Try and run.

// Try and run.
Reactions

Post a Comment

0 Comments