Heim > Backend-Entwicklung > C++ > Verwenden Sie in einem C-Programm den binären Suchalgorithmus, um rationale Zahlen zu suchen, ohne Gleitkomma-Arithmetik zu verwenden

Verwenden Sie in einem C-Programm den binären Suchalgorithmus, um rationale Zahlen zu suchen, ohne Gleitkomma-Arithmetik zu verwenden

WBOY
Freigeben: 2023-08-27 18:05:05
nach vorne
532 Leute haben es durchsucht

Verwenden Sie in einem C-Programm den binären Suchalgorithmus, um rationale Zahlen zu suchen, ohne Gleitkomma-Arithmetik zu verwenden

In diesem Problem erhalten wir eine sortierte Reihe rationaler Zahlen. Wir müssen einen binären Suchalgorithmus verwenden, um nach einem bestimmten Element dieses Arrays rationaler Zahlen zu suchen, ohne Gleitkommaoperationen zu verwenden.

Rationale Zahlen sind Zahlen, die in der Form p/q ausgedrückt werden, wobei p und q beide ganze Zahlen sind. Zum Beispiel ⅔, ⅕.

Binäre Suche ist eine Suchtechnik, die Elemente findet, indem sie in der Mitte eines Arrays sucht.

Wird verwendet, um Elemente in einem sortierten Array rationaler Zahlen mithilfe der binären Suche zu finden, wobei Gleitkommaoperationen nicht zulässig sind. Wir vergleichen Zähler und Nenner, um herauszufinden, welches Element größer ist bzw. welches Element dasjenige ist, das gefunden werden soll.

Beispiel

Lassen Sie uns dafür ein Programm erstellen,

#include <stdio.h>
struct Rational {
   int p;
   int q;
};
int compare(struct Rational a, struct Rational b) {
   if (a.p * b.q == a.q * b.p)
      return 0;
   if (a.p * b.q > a.q * b.p)
      return 1;
   return -1;
}
int binarySearch(struct Rational arr[], int l, int r, struct Rational x) {
   if (r >= l) {
      int mid = l + (r - l)/2;
   if (compare(arr[mid], x) == 0) return mid;
   if (compare(arr[mid], x) > 0)
      return binarySearch(arr, l, mid-1, x);
   return binarySearch(arr, mid+1, r, x);
   }
   return -1;
}
int main() {
   struct Rational arr[] = {{1, 4}, {2, 3}, {3, 2}, {7, 2}};
   struct Rational x = {3, 2};
   int n = sizeof(arr)/sizeof(arr[0]);
   printf("Element found at index %d", binarySearch(arr, 0, n-1, x));
}
Nach dem Login kopieren

Ausgabe

Element found at index 2
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonVerwenden Sie in einem C-Programm den binären Suchalgorithmus, um rationale Zahlen zu suchen, ohne Gleitkomma-Arithmetik zu verwenden. 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