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 Sie die Bibliothek und die 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.



