Problem
Statement : write a C program with function to search a given
element say key in arr[].
Logic:
Input : arr[]={10,20,30,40,25,35,45,55,60,65}
Input : arr[]={10,20,30,40,25,35,45,55,60,65}
Element not found
See Also :Linear Search with Pointer
Logic:
Input : arr[]={10,20,30,40,25,35,45,55,60,65}
key=25
Output: 5
Element is found at
5 position
Input : arr[]={10,20,30,40,25,35,45,55,60,65}
key=26
Output: -1
Element not found
Time complexity - O(n)
A simple Algorithm for linear search,
1.
Start from the lower element of
arr[] i.e arr[0] and one by one compare key with each element of arr[] till end
of array.
2.
If key matches with an element,
return the index.
3.
If key doesn’t match with any of
elements, return -1
C Code for Linear Search using function:
#include<stdio.h>
int search(int arr[], int n, int key) ;//Function Prototype
int main()
{
int i,n,key,arr[10]; // declaration part
printf("\n Enter size of array:");
scanf("%d",&n);
printf("\n Enter element of array:");
for(i=0;i<n;i++) // Scan array of size n
{
scanf("%d",&arr[i]);
}
printf("\n Entered array is:");
for(i=0;i<n;i++) //
Print array
{
printf("\"%d\"\t",arr[i]);
}
printf("\n Enter key to find in aray:");
scanf("%d",&key); //scan key for finding
i=search(arr,n,key); //call
search function and assign return value to i
if(i==-1) //now check return value if -1 then no element
found
printf("\n Key not found in array");
else //else show element position in array
printf("\n Key found in array at position %d",i);
return 0;
getchar();
}
int search(int arr[], int n, int key) //search function
{
int i;
for (i = 0; i <
n; i++) //check for key matching linearly
one by one element
if (arr[i] ==
key) // Condition for cheching equity of
key and array element
return i+1;
return -1;
}
/*
Output
Enter
size of array:10
Enter
element of array:10 20 30 40 50 60 70 80 90 100
Entered
array is:"10" "20" "30" "40"
"50" "60" "70" "80" "90"
"100"
Enter
key to find in array:80
Enter
Key found in array at position 8
*/
See Also :Linear Search with Pointer
No comments:
Post a Comment