Heim > Backend-Entwicklung > C++ > Hauptteil

C++-Programm zum Suchen nach einem bestimmten Wert im Array

WBOY
Freigeben: 2023-08-30 19:21:06
nach vorne
929 Leute haben es durchsucht

C++-Programm zum Suchen nach einem bestimmten Wert im Array

Angenommen, wir haben ein Array „arr“, das n sortierte Ganzzahlwerte enthält. Wir erhalten außerdem ein Array „query“ der Größe q und müssen feststellen, ob der Wert in „query“ im angegebenen Array „arr“ vorhanden ist. Wenn der Wert in der Abfrage in arr vorhanden ist, geben Sie „exists“ und den Speicherort des Werts aus. Andernfalls geben wir „existiert nicht“ aus und geben die Position in arr aus, an der sich der Mindestwert befindet, der größer als der Wert in der Abfrage ist. Wir müssen bedenken, dass Arrays 1-indiziert sind.

Wenn die Eingabe also etwa n = 8, arr = {1, 2, 3, 4, 7, 9, 12, 15}, q = 3, query = {1, 5, 8} ist, ist die Ausgabe

Present 1
Not present 5
Not present 6
Nach dem Login kopieren
Nach dem Login kopieren

Der erste abgefragte Wert erscheint an Position 1 von arr.

Der zweite Wert der Abfrage erscheint in arr. Die Position des kleinsten Werts, der größer als der abgefragte Wert ist, ist 5.

Ebenso gibt es in arr keinen dritten Abfragewert. Größere Werte befinden sich an Position 6 von arr.

Um dieses Problem zu lösen, führen wir die folgenden Schritte aus –

  • Definieren Sie einen Array-Wert
  • Für die Initialisierung i := 0, wenn i < n, aktualisieren (i um 1 erhöhen), ausführen – < n 时,更新(将 i 增加 1),执行 -
    • in Wert einfügen arr[i] am Ende
  • Initialisiere i := 0, wenn i < q, aktualisiere (i um 1 erhöhen), führe -< q 时,更新(将 i 增加 1),执行 -
    • idx : = aus (das erste in Werten, die nicht kleiner sind als query[i] Die Position des Elements) – Die Position des ersten Elements in Werten
    • Wenn Values[idx] mit query[i] identisch ist, dann-
      • print("Exists")
    • Sonst
      • print("Existiert nicht")
    • print(idx + 1)

Beispiel

Zum besseren Verständnis beziehen wir uns auf die folgende Implementierung:

#include <vector>
#include <iostream>
using namespace std;

void solve(int n, int arr[], int q, int query[]) {
   vector<int> values;
   for(int i = 0; i < n; i++){
      values.push_back(arr[i]);
   }
   for(int i = 0; i < q; i++) {
      int idx = lower_bound (values.begin(), values.end(),
      query[i]) - values.begin();
      if (values[idx] == query[i])
         cout << "Present ";
      else
         cout << "Not present ";
      cout << idx + 1 << endl;
   }
}
int main() {
   int input_arr[] = {1, 2, 3, 4, 7, 9, 12, 15};
   int query_arr[] = {1, 5, 8};
   solve(8, input_arr, 3, query_arr);
   return 0;
}
Nach dem Login kopieren

Input (Standardeingabe)

int input_arr[] = {1, 2, 3, 4, 7, 9, 12, 15};
int query_arr[] = {1, 5, 8};
solve(8, input_arr, 3, query_arr);
Nach dem Login kopieren

Ausgabe

Present 1
Not present 5
Not present 6
Nach dem Login kopieren
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonC++-Programm zum Suchen nach einem bestimmten Wert im Array. 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