Heim > Backend-Entwicklung > C++ > Hauptteil

Wie finde ich das kleinste Element in einem Array mithilfe des binären Suchalgorithmus in C-Sprache?

WBOY
Freigeben: 2023-08-25 20:37:18
nach vorne
714 Leute haben es durchsucht

Die Programmiersprache C bietet zwei Suchtechniken. Sie lauten wie folgt:

  • Lineare Suche
  • Binäre Suche

Binäre Suche

  • Diese Methode funktioniert nur mit geordneten Listen.
  • Die angegebene Liste ist in zwei gleiche Teile unterteilt.
  • Das angegebene Schlüsselwort wird mit dem mittleren Element der Liste verglichen.

Hier können drei Situationen wie folgt auftreten:

  • Wenn das mittlere Element mit dem Schlüsselwort übereinstimmt, wird die Suche hier erfolgreich beendet.

  • Wenn das mittlere Element größer als das Schlüsselwort ist, wird die Suche fortgesetzt linke Partition.

  • Wenn das mittlere Element kleiner als das Schlüsselwort ist, wird die Suche auf der rechten Partition durchgeführt.

Eingabe (i/p) – Unsortierte Liste von Elementen, Schlüsselwörtern.

Ausgabe (o/p) -

  • Erfolg- Wenn das Schlüsselwort gefunden wird
  • Fehler- Andernfalls

Wie finde ich das kleinste Element in einem Array mithilfe des binären Suchalgorithmus in C-Sprache?

key = 20
mid = (low +high) /2
Nach dem Login kopieren

Wie finde ich das kleinste Element in einem Array mithilfe des binären Suchalgorithmus in C-Sprache?

Programm 1

Das Folgende ist, das kleinste Element zu finden ein Array mit binärer Suche C-Programm von:

#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;
}
Nach dem Login kopieren

Ausgabe

Wenn das obige Programm ausgeführt wird, erzeugt es das folgende Ergebnis: -

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
Nach dem Login kopieren

Programm2

Suchen Sie mit dem folgenden C-Programm das minimale Element in einem Array mithilfe der Binärfunktion Suche −

#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;
}
Nach dem Login kopieren

Ausgabe

Wenn das obige Programm ausgeführt wird, erzeugt es das folgende Ergebnis −

Enter no of elements in an array
5
Enter 5 elements:
12
23
34
45
56
minimum element in an array is: 12
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie finde ich das kleinste Element in einem Array mithilfe des binären Suchalgorithmus in C-Sprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage