Home > Backend Development > C++ > How to find the smallest element in an array using binary search algorithm in C language?

How to find the smallest element in an array using binary search algorithm in C language?

WBOY
Release: 2023-08-25 20:37:18
forward
738 people have browsed it

The C programming language provides two search techniques. They are as follows:

  • Linear search
  • Binary search

Binary search

  • This method only works for Ordered list.
  • The given list is divided into two equal parts.
  • The given keyword is compared to the middle element of the list.

Here, three things can happen, as follows:

  • If the middle element matches the keyword, the search will end successfully here

  • If the middle element is larger than the keyword, the search will be performed on the left partition.

  • If the middle element is smaller than the keyword, the search will be performed on the right partition.

Input (i/p) - Unsorted list of elements, keyword.

Output (o/p) -

  • Success - If keyword found
  • Failure - Otherwise

How to find the smallest element in an array using binary search algorithm in C language?

key = 20
mid = (low +high) /2
Copy after login

How to find the smallest element in an array using binary search algorithm in C language?

Program 1

The following is a C program to find the smallest element in an array using binary search:

#include<stdio.h>
int main(){
   int a[50], n, i, key, flag = 0, low, mid, high;
   printf("enter the no: of elements:");
   scanf ("%d",&n);
   printf("enter the elements:");
   for(i=0; i<n; i++)
      scanf( "%d", &a[i]);
   printf("enter a key element:");
   scanf ("%d", &key);
   low = 0;
   high = n-1;
   while (low<= high ){
      mid = (low + high) /2;
      if (a[mid] == key){
         flag = 1;
         break;
      }
      else{
         if (a[mid] > key)
            high = mid-1;
         else
            low = mid+1;
      }
   }
   if (flag == 1)
      printf ("search is successful");
   else
      printf("search is unsuccessful");
   return 0;
}
Copy after login

Output

When the above program is executed, it produces the following result −

Run 1:
enter the no: of elements:5
enter the elements:
12
34
11
56
67
enter a key element:45
search is unsuccessful
Run 2:
enter the no: of elements:3
enter the elements:
12
34
56
enter a key element:34
search is successful
Copy after login

Program2

Given the following C program, it is found by using binary search Minimum element in the array −

#include<stdio.h>
void Bmin(int *a, int i, int n){
   int j, temp;
   temp = a[i];
   j = 2 * i;
   while (j <= n){
      if (j < n && a[j+1] > a[j])
         j = j + 1;
      if (temp < a[j])
         break;
      else if (temp >= a[j]){
         a[j / 2] = a[j];
         j = 2 * j;
      }
   }
   a[j/2] = temp;
   return;
}
int binarysearchmin(int *a,int n){
   int i;
   for(i = n/2; i >= 1; i--){
      Bmin(a,i,n);
   }
   return a[1];
}
int main(){
   int n, i, x, min;
   int a[20];
   printf("Enter no of elements in an array</p><p>");
   scanf("%d", &n);
   printf("</p><p>Enter %d elements: ", n);
   for (i = 1; i <= n; i++){
      scanf("%d", &a[i]);
   }
   min = binarysearchmin(a, n);
   printf("\minimum element in an array is : %d", min);
   return 0;
}
Copy after login

Output

When the above program is executed, it produces the following result−

Enter no of elements in an array
5
Enter 5 elements:
12
23
34
45
56
minimum element in an array is: 12
Copy after login

The above is the detailed content of How to find the smallest element in an array using binary search algorithm in C language?. For more information, please follow other related articles on the PHP Chinese website!

source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template