Monday, February 17, 2020

Linear search

#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 (= 0; c < n; c++)
    scanf("%d", &array[c]);
  printf("Enter a number to search\n");
  scanf("%d", &search);
  for (= 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 (== n)
    printf("%d isn't present in the array.\n", search);
  return 0;
}
Output of program:

Linear search C 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 (= 0; c < n; c++)
      scanf("%d", &array[c]);
   
   printf("Enter a number to search\n");
   scanf("%d", &search);
 
   for (= 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:

Linear Search program output for multiple occurrence

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 (= 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 (= 0 ;< n ; c++ ) {
      if (a[c] == find)
         return c;
   }

   return -1;
}

Linear search function using pointers


long linear_search(long *p, long n, long find) {
  long c;

  for (= 0; c < n; c++) {
    if (*(p+c) == find)
      return c;
  }

  return -1;
}

No comments:

Post a Comment