Heim  >  Artikel  >  Backend-Entwicklung  >  C++-Programm zum Suchen nach einem bestimmten Wert im Array

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

WBOY
WBOYnach vorne
2023-08-30 19:21:06928Durchsuche

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

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
  • in Wert einfügen arr[i] am Ende
  • Initialisiere i := 0, wenn i
  • 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;
    }

    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);

    Ausgabe

    Present 1
    Not present 5
    Not present 6

    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!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen