Skip to main content

Linear search & Binary search using Template


Write a program to search an element from a list. Give user the option to perform Linear or Binary search. Use Template functions.
#include<iostream>

using namespace std;

template <class T>
void Lsearch(T *a, T item, int n)
{
int z=0;
for(int i=0;i<n;i++)
{
if(a[i]== item)
{
z=1;
cout<<"\n Item found at position = "<<i+1<<"\n\n";
}
else
if(z!=1)
{
z=0;
}
}

if(z==0)
cout<<"\n Item not found in the list\n\n";
}

template <class T>
void Bsearch(T *a, T item, int n)
{
int beg=0,end=n-1;
int mid=beg+end/2;

while((a[mid]!=item) && (n>0))
{
if(item>a[mid])
beg=mid;
else
end=mid;

mid=(beg+end)/2;

n--;
}

if(a[mid]==item)
cout<<"\n Item found at position = "<<mid+1<<"\n\n";
else
cout<<"\n Item not found in the list\n\n";

}

void main()
{
int iarr[10] = {2,42,56,86,87,99,323,546,767,886};
double darr[6]= {2.4, 5.53,44.4, 54.45, 65.7,89.54};
int iele;
double dele;

cout<<"\n Elements of Integer Array \n";
for(int i=0;i<10;i++)
{
cout<<" "<<iarr[i]<<" ,";
}
cout<<"\n\n Enter an item to be search: ";
cin>>iele;

cout<<"\n\n Linear Search Method\n";
Lsearch(iarr,iele,10);
cout<<"\n\n Binary Search method\n";
Bsearch(iarr,iele,10);

cout<<"\n Elements of double Array \n";
for(int i=0;i<6;i++)
{
cout<<" "<<darr[i]<<" ,";
}
cout<<"\n\n Enter an item to be search: ";
cin>>dele;

cout<<"\n\n Linear Search Method\n";
Lsearch(darr,dele,6);
cout<<"\n\n Binary Search method\n";
Bsearch(darr,dele,6);

system("pause");
}





Comments

Popular posts from this blog

Use Case Diagram for Online Book Store

Occurrences of each letter of alphabet in the text

Program to print a table indicating the no. of occurrences of each letter of alphabet in the text entered as command line arguments. #include<iostream> #include<string> using namespace std; int main(int argc, char *argv[]) { string str=""; static int alphabet[26]; int x; cout<<"\n\n Command-Line Argument\n"; for(int i=0;i<argc;i++) { cout<<"\n "<<argv[i]; str+=argv[i]; } for(int i=0;i<str.length();i++) { if(str[i]>='A' && str[i]<='Z') { x=((int)str[i])-65; alphabet[x]++; } else if(str[i]>='a' && str[i]<='z') { x=((int)str[i])-97; alphabet[x]++; } } //Displaying No. of occurrences of each alphabets in the command line argument cout<<"\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n Alphabet No. of Occurrences\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"; for(int i=0;i<26;i++)...