Maison > développement back-end > C++ > Comment trouver le plus petit élément d'un tableau à l'aide d'un algorithme de recherche binaire en langage C ?

Comment trouver le plus petit élément d'un tableau à l'aide d'un algorithme de recherche binaire en langage C ?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2023-08-25 20:37:18
avant
809 Les gens l'ont consulté

Le langage de programmation C propose deux techniques de recherche. Ils sont les suivants :

  • Recherche linéaire
  • Recherche binaire

Recherche binaire

  • Cette méthode ne fonctionne qu'avec des listes ordonnées.
  • La liste donnée est divisée en deux parties égales.
  • Le mot-clé donné est comparé à l'élément central de la liste.

Ici, trois situations peuvent se produire comme suit :

  • Si l'élément du milieu correspond au mot-clé, la recherche se terminera ici avec succès

  • Si l'élément du milieu est supérieur au mot-clé, la recherche se poursuivra dans le cloison gauche.

  • Si l'élément du milieu est plus petit que le mot-clé, la recherche sera effectuée sur la partition de droite.

Entrée (i/p) - Liste non triée d'éléments, mots-clés.

output (o / p) -

  • success- Si le mot-clé est trouvé
  • failure - sinon

Comment trouver le plus petit élément dun tableau à laide dun algorithme de recherche binaire en langage C ?

key = 20
mid = (low +high) /2
Copier après la connexion

Comment trouver le plus petit élément dun tableau à laide dun algorithme de recherche binaire en langage C ?

program 1

Le suivant est de trouver le plus petit élément d'un tableau en utilisant le programme C de recherche binaire de :

#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;
}
Copier après la connexion

Output

Lorsque le programme ci-dessus est exécuté, il produit le résultat suivant −

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
Copier après la connexion

Program2

Étant donné le programme C suivant, recherchez l'élément minimum dans un tableau en utilisant le binaire search −

#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;
}
Copier après la connexion

Output

Lorsque le programme ci-dessus est exécuté, il produit le résultat suivant −

Enter no of elements in an array
5
Enter 5 elements:
12
23
34
45
56
minimum element in an array is: 12
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal