Linear search in C
Linear search in C to find whether a number is present in an array. If it’s present, then at what location it occurs. It is also known as a sequential search. It is straightforward and works as follows: we compare each element with the element to search until we find it or the list ends. Linear search for multiple occurrences and using a function.
Linear search program in C
#include <stdio.h>
int main()
{
int array[100], search, c, n;
printf(“Enter number of elements in array\n“);
scanf(“%d”, &n);
printf(“Enter %d integer(s)\n“, n);
for (c = 0; c < n; c++)
scanf(“%d”, &array[c]);
printf(“Enter a number to search\n“);
scanf(“%d”, &search);
for (c = 0; c < n; c++)
{
if (array[c] == search) /* If required element is found */
{
printf(“%d is present at location %d.\n“, search, c+1);
break;
}
}
if (c == n)
printf(“%d isn’t present in the array.\n“, search);
return 0;
}
Output of program:
Linear search C program for multiple occurrences
In the code below we will print all locations at which required element is found and also the number of times it occurs in the list.
#include <stdio.h>
int main()
{
int array[100], search, c, n, count = 0;
printf(“Enter number of elements in array\n“);
scanf(“%d”, &n);
printf(“Enter %d numbers\n“, n);
for (c = 0; c < n; c++)
scanf(“%d”, &array[c]);
printf(“Enter a number to search\n“);
scanf(“%d”, &search);
for (c = 0; c < n; c++) {
if (array[c] == search) {
printf(“%d is present at location %d.\n“, search, c+1);
count++;
}
}
if (count == 0)
printf(“%d isn’t present in the array.\n“, search);
else
printf(“%d is present %d times in the array.\n“, search, count);
return 0;
}
Output of code:
C program for linear search using a function
#include <stdio.h>
long linear_search(long [], long, long);
int main()
{
long array[100], search, c, n, position;
printf(“Input number of elements in array\n“);
scanf(“%ld”, &n);
printf(“Input %d numbers\n“, n);
for (c = 0; c < n; c++)
scanf(“%ld”, &array[c]);
printf(“Input a number to search\n“);
scanf(“%ld”, &search);
position = linear_search(array, n, search);
if (position == –1)
printf(“%d isn’t present in the array.\n“, search);
else
printf(“%d is present at location %d.\n“, search, position+1);
return 0;
}
long linear_search(long a[], long n, long find) {
long c;
for (c = 0 ;c < n ; c++ ) {
if (a[c] == find)
return c;
}
return –1;
}
Linear search function using pointers
long c;for (c = 0; c < n; c++) {
if (*(p+c) == find)
return c;
}return –1;
}
The time required to search an element using the algorithm depends on the size of the list. In the best case, it’s present at the beginning of the list, in the worst-case, element is present at the end. Its time complexity is O(n).