Heim > Artikel > Backend-Entwicklung > Wie finde ich das kleinste Element in einem Array mithilfe des binären Suchalgorithmus in C-Sprache?
Die Programmiersprache C bietet zwei Suchtechniken. Sie lauten wie folgt:
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) -
key = 20 mid = (low +high) /2
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; }
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
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; }
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
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!