Linear search or sequential search is one of the searching algorithms in which we have some data in a data structure like array data structure and we have to search a particular element in it which is known as key.
By traversing the whole data structure elements from start to end one by one to find key comparing with each data structure element to the key.
In case of an array, we check that the given key or a number is present in array at any index or not by comparing each element of array
There can be two possible outcomes if we are assuming that data structure like array contains unique values.
Linear Search in C++ Program Example Code
#include<iostream>
using namespace std;
int main() {
cout<<"Enter The Size Of Array: ";
int size;
cin>>size;
int array[size], key,i;
// Taking Input In Array
for(int j=0;j<size;j++){
cout<<"Enter "<<j<<" Element: ";
cin>>array[j];
}
//Your Entered Array Is
for(int a=0;a<size;a++){
cout<<"array[ "<<a<<" ] = ";
cout<<array[a]<<endl;
}
cout<<"Enter Key To Search in Array";
cin>>key;
for(i=0;i<size;i++){
if(key==array[i]){
cout<<"Key Found At Index Number : "<<i<<endl;
break;
}
}
if(i != size){
cout<<"KEY FOUND at index : "<<i;
}
else{
cout<<"KEY NOT FOUND in Array ";
}
return 0;
}
Image View Of Code:
Sample Output:
Code Logic Explanation:
Dry Running The Code With Sample Input
Let size=5;
Array Elements are
1
2
3
4
5
Key is equal to 4
3rd for loop comparisons
i=0
if(1==4) false
i=1
if(2==4) false
For students struggling with their c++ assignments
By traversing the whole data structure elements from start to end one by one to find key comparing with each data structure element to the key.
In case of an array, we check that the given key or a number is present in array at any index or not by comparing each element of array
There can be two possible outcomes if we are assuming that data structure like array contains unique values.
- Linear search successful Key Found means in array at an index we found value which matches to our key
- Linear search failed to find the Key mean our key does not exist in data
Linear Search in C++ Program Example Code
#include<iostream>
using namespace std;
int main() {
cout<<"Enter The Size Of Array: ";
int size;
cin>>size;
int array[size], key,i;
// Taking Input In Array
for(int j=0;j<size;j++){
cout<<"Enter "<<j<<" Element: ";
cin>>array[j];
}
//Your Entered Array Is
for(int a=0;a<size;a++){
cout<<"array[ "<<a<<" ] = ";
cout<<array[a]<<endl;
}
cout<<"Enter Key To Search in Array";
cin>>key;
for(i=0;i<size;i++){
if(key==array[i]){
cout<<"Key Found At Index Number : "<<i<<endl;
break;
}
}
if(i != size){
cout<<"KEY FOUND at index : "<<i;
}
else{
cout<<"KEY NOT FOUND in Array ";
}
return 0;
}
Image View Of Code:
Sample Output:
What is Linear Search In C++ Code Example Sample Output |
Code Logic Explanation:
- To Make Logic First We Think That We Have To Traverse Whole Array Form Start To End So we Decide To Use a Loop
- First for Loop Taking Input in Array Element By Element Second Displaying Entered Elements
- Third for Loop Which is Main For Loop Having an if Condition Which Checks Every Array Element with Key
- If an Element Matches With Key if Condition Becomes True and Loop Terminates With Break Statement
- Then If Condition Outside Loop Which Will Become True Because Loop Variable 'i' not Equal to Size Of Array
- If Element Not Found In Array Than Loop Will Run Complete And If Condition Will Not True Because in This Case Loop Will Run Complete And After Termination Variable 'i' Will be Equal to Size Variable
Dry Running The Code With Sample Input
Let size=5;
Array Elements are
1
2
3
4
5
Key is equal to 4
3rd for loop comparisons
i=0
if(1==4) false
i=1
if(2==4) false
i=2
if(3==4) false
if(3==4) false
i=3
if(4==4) True
if(4==4) True
break for loop
Output:
Key Found At Index Number : 3
For students struggling with their c++ assignments
Frequently students all over the world struggle with preparing C++ assignments and they need help online. If you are looking for someone who could process your "do my C++ homework" request, please address experts from AssignmentCore.com
good
ReplyDeletebut we can replace the last if
if(i != size){
cout<<"KEY FOUND at index : "<<i;
}
else{
cout<<"KEY NOT FOUND in Array ";
}
by this one
if(i == size){
cout<<"KEY NOT FOUND in Array ";
}
it will be better
No, you can't do that. Consider the size = 1, and I=1 when it found the matching number - there would be an error. Instead, you can write something like this:
Delete#include
#include
using namespace std;
int main()
{
int a[10], i, c, z=0;
cout<<"Array can support up to 10 numbers.";
cout<<"Please, enter the numbers";
for(i=0;i<10;i++)
{
cin>>a[i];
}
cout<<"Enter the number you want to search";
cin>>c;
for(i=0;i<10;i++)
{
if (c==a[i])
{
z=c;
cout<<"The number has been found at:"<<i;
}
}
if (!(z==c))
cout<<"The number wasn't found, sorry!";
getch();
}
Made a mistake right there, please, do not set the z=0 - because in that case if user input c=0, then it won't output the last value. Since, the compiler will assign a garbage value - the z will never be equal to c, unless the number has been found in the loop. So here's the most correct version.
Delete#include
#include
using namespace std;
int main()
{
int a[10], i, c, z;
cout<<"Array can support up to 10 numbers.";
cout<<"Please, enter the numbers";
for(i=0;i<10;i++)
{
cin>>a[i];
}
cout<<"Enter the number you want to search";
cin>>c;
for(i=0;i<10;i++)
{
if (c==a[i])
{
z=c;
cout<<"The number has been found at:"<<i;
}
}
if (!(z==c))//i will be incremented till 10 if the number isn't found through whole array.
cout<<"The number wasn't found, sorry!";
getch();
}
really helpful :)
ReplyDelete
ReplyDeleteYou will be given a txt file, similar to OpeInFile.txt in Doc Sharing. The file has only one calculation per line. Notice that number of lines in the file is not known. You need to write your program to read each line and write the question and answer into another line.
There are six main math operations: plus, minus, times, divided by, Min, Max. However plus, minus, times, and divided by can be expressed with signs also.
For instance, if the input file has only these lines
12 + 56
9 divided by -3
45 minus 15
Min of 2 and 1
Max of 3 and 5
34 plus 33
Your output file will be
12 + 56 = 68
9 / -3 = -3
45 - 15 = 30
Min (2, 1) = 1
Max (3, 5) = 5
34 + 33 = 67
Note that the number of lines (operations) in the source txt file is not known.
The name of output file will be CalculationResults.txt.
i have a error in this code.."constant expression required" how can i handle this ?
ReplyDelete#include
ReplyDeleteusing namespace std;
main()
{
int item,i,n,x;
cout << "Enter the array size : "<>n;
int arr[n];
cout<<" Enter Element : "<>arr[i];
}
cout << "Enter the item you want to find : "<> item;
for(i=0;i=n)
{
cout << "Not exist!" << endl;
}
}
#include
ReplyDelete#include
void main()
{
clrscr();
int arr[10], i, num, n, c=0, pos;
cout<<"Enter the array size : ";
cin>>n;
cout<<"Enter Array Elements : ";
for(i=0; i>arr[i];
}
cout<<"Enter the number to be search : ";
cin>>num;
for(i=0; i<n; i++)
{
if(arr[i]==num)
{
c=1;
pos=i+1;
break;
}
}
if(c==0)
{
cout<<"Number not found..!!";
}
else
{
cout<<num<<" found at position "<<pos;
}
getch();
}
#include
ReplyDelete#include
Int linear search (int A [],n,key );
int i ;
for (i=0;i>n;
cout <<"enter the element";
for (i=0;i>A[i];
}
cout<<"now enter the search key ";
cin>>key;
i=linearsearch (A,n,key);
If ( i== -1)
cout <<"sorry the element not found ";
else
cout <<"element found on index ;<<i;
getch ();
}
Guys any one know about linear search using function overloading
ReplyDeletevery well
ReplyDeletehow can we write
ReplyDeleteint array[size]
this expression must have a constant value
no this expression cant a constant value because constant value we declare as array[5]
Deleteand variable value we declare as array[n]