Searching
Searching means finding an element in an array. There are two type of searching techniques :
- Linear Search
- Binary Search
In linear search, to find the element array is traversed and checked each element for the position while binary search needs sorted elements to find the element in the array. Binary search compare less elements then linear search and very fast but limitation is that it needs sorted array.
Let see few example programs given below, which represent the concept of both searching :
Example 7.9 Program to search an element in the array using Linear Search.
#include <iostream.h>
int main (){
int item[10], n=0, num, pos[10];
cout<<”\n Enter 10 elements for array:”;
for(int i = 0; i < 10; i++) {
cout<<”\n Enter the element:”;
cin>>item[i]; }
cout<<”\n All elements of array are:\n”;
for(int i = 0; i < 10; i++) {
cout<< item[i] << “\t”; }
cout<<”\n Enter element to be searched :”;
cin >> num;
//comparing the elements of array
for(int i = 0; i < 10; i++) {
if(num == item[i])
pos[n++] = i; }
if (n > 0) {
cout << ”\n ” << num << “ is found in array ” << n << “times.”;
cout << “\n The positions are :”;
for( int i = 0; i < n; i++)
cout << pos[i]+1 << “,\t”;
}
else
cout << “\n ” << num << “ is not found in array.” ;
return 0;
}
OUTPUT:
Enter 10 elements for array: Enter the element-10 Enter the element-30 Enter the element-45 Enter the element-23 Enter the element-49 Enter the element-10 Enter the element-29 Enter the element-67 Enter the element-34 Enter the element-98 All the elements of array are 10, 30, 45, 23, 49, 10, 29, 67, 34, 98
Enter the element to be searched: 10
10 is found in array 2 times.
The positions are: 1, 6
Example 7.9 Program to search an element in the array using Binary Search.
#include <iostream.h>
int main (){
int item[10], num, pos, beg, end, mid;
cout<<”\n Enter 10 elements for array:”;
for(int i = 0; i < 10; i++) {
cout<<”\n Enter the element:”; cin>>item[i]; }
cout<<”\n All elements of array are:\n”;
for(int i = 0; i < 10; i++) { cout<< item[i] << “\t”; }
cout<<”\n Enter element to be searched :”;
cin >> num;
//comparing the elements of array
beg = 0, end = n-1;
while(beg <= end)
{
mid =( beg + end )/2;
if(num == item[mid])
{
n = 1;
pos = mid;
break;
}
else if( num < a[mid])
end = mid - 1;
else
beg = mid + 1;
}
if (n == 1)
cout << ”\n” << num<<“is found in array at” << pos=1<< “position.”;
else
cout << “\n” << num<< “ is not found in array.”;
return 0;
}
OUTPUT:
Enter 10 elements for array in ascending order: Enter the element-10 Enter the element-14 Enter the element-15 Enter the element-23 Enter the element-29 Enter the element-34 Enter the element-39 Enter the element-57 Enter the element-64 Enter the element-68 All the elements of array are 10, 14, 15, 23, 29, 34, 39, 57, 64, 68
Enter the element to be searched: 34
34 is found in array at 6 position.