Prüfen Sie ein Array auf Duplikate

C++C++Beginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir lernen, wie man mithilfe der Programmiersprache C++ feststellt, ob ein gegebener Array Duplikate enthält oder nicht. Dies wird durch Sortieren des Arrays und anschließendes Vergleichen benachbarter Elemente auf Gleichheit erreicht.

Schreiben der Bibliothek und der Hauptfunktion

Schreiben Sie die Bibliothek und die Hauptfunktion wie folgt.

#include <iostream>
#include <bits/stdc++.h>

using namespace std;

bool containsDuplicate(int n[], int m)
{
    // Erstellen Sie ein Flag, um das Vorhandensein von Duplikaten anzuzeigen
    int f = 0;

    // Sortieren Sie das Eingabe-Array, um nach Duplikaten zu suchen
    sort(n, n + m);

    for (int i = 0; i < m - 1; i++)
    {
        if (n[i] == n[i + 1])
        {
            // Setzen Sie das Flag auf 1 und beenden Sie die Schleife, wenn ein Duplikat gefunden wird
            f = 1;
            break;
        }
    }

    if (f == 1) {
        // Duplikat gefunden
        return true;
    }
    else {
        // Keine Duplikate gefunden
        return false;
    }
}

int main()
{
    cout << "\n\nWillkommen bei LabEx :-)\n\n\n";
    cout << " ===== Programm, um zu überprüfen, ob im Eingabe-Array Duplikate vorhanden sind  ===== \n\n";

    int i, n1, n2;

    int a1[] = {2, 3, 1, 4, 5, 2, 8, 9};
    int a2[] = {2, 3, 1, 4, 5, 10, 8, 9};

    bool duplicate1 = false;
    bool duplicate2 = false;

    // Ermitteln Sie die Größe der beiden Eingabe-Arrays
    n1 = sizeof(a1) / sizeof(a1[0]);
    n2 = sizeof(a2) / sizeof(a2[0]);

    // Drucken Sie das erste Eingabe-Array
    cout << "\n\nDie Elemente des ersten Eingabe-Arrays sind :\n\n";

    for (i = 0; i < n1; i++)
    {
        cout << a1[i] << "  ";
    }

    // Überprüfen Sie, ob das erste Eingabe-Array Duplikate enthält
    duplicate1 = containsDuplicate(a1, n1);

    if (duplicate1) {
        cout << "\n\nDas erste Eingabe-Array enthält Duplikate";
    }
    else {
        cout << "\n\nDas erste Eingabe-Array enthält keine Duplikate";
    }

    // Drucken Sie das zweite Eingabe-Array
    cout << "\n\n\n\nDie Elemente des zweiten Eingabe-Arrays sind :\n\n";

    for (i = 0; i < n2; i++)
    {
        cout << a2[i] << "  ";
    }

    // Überprüfen Sie, ob das zweite Eingabe-Array Duplikate enthält
    duplicate2 = containsDuplicate(a2, n2);

    if (duplicate2) {
        cout << "\n\nDas zweite Eingabe-Array enthält Duplikate";
    }
    else {
        cout << "\n\nDas zweite Eingabe-Array enthält keine Duplikate";
    }

    cout << "\n\n\n";

    return 0;
}

Führen Sie den Code aus

Speichern Sie den Code in der Datei ~/project/main.cpp und kompilieren Sie den Code mit:

g++ main.cpp -o main &&./main

Verstehen Sie den Code

Um nach Duplikaten in einem Array zu suchen, haben wir zunächst eine Funktion namens containsDuplicate() erstellt. Diese Funktion nimmt zwei Argumente entgegen - das Eingabe-Array n[] und seine Größe m.
Die Funktion markiert gefundene Duplikate mit dem Wert 1, andernfalls mit dem Wert 0. Um Duplikate zu finden, wird das Eingabe-Array n[] zunächst mit der systemdefinierten sort()-Funktion sortiert. Anschließend werden benachbarte Elemente im sortierten Array verglichen, und das Flag wird gesetzt, wenn Duplikate gefunden werden.
In der Hauptfunktion werden zwei Test-Arrays a1 und a2 erstellt, wobei jedes ein potenzielles Duplikat enthält. Mit Hilfe von containsDuplicate() überprüfen wir jedes Array auf Duplikate und geben das Ergebnis aus.

if (duplicate1) {
    cout << "\n\nDas erste Eingabe-Array enthält Duplikate";
}
else {
    cout << "\n\nDas erste Eingabe-Array enthält keine Duplikate";
}

Diese Ausgabe wird anzeigen, ob das Eingabe-Array Duplikate enthält oder nicht.

Zusammenfassung

Mit der Programmiersprache C++ können Duplikate in Arrays leicht ermittelt werden. Indem man das Eingabe-Array sortiert und dann benachbarte Elemente vergleicht, ist es möglich, ein effizientes Flagging-System zur Anzeige von Duplikaten zu entwickeln.