Introdução
Neste laboratório, aprenderemos como determinar se um determinado array contém duplicatas ou não, usando a linguagem de programação C++. Isso será alcançado através da ordenação do array e, em seguida, comparando elementos adjacentes para verificar a igualdade.
Escrever a Biblioteca e a Função Principal
Escreva a biblioteca e a função principal da seguinte forma.
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
bool containsDuplicate(int n[], int m)
{
// Create a flag to indicate the presence of duplicate
int f = 0;
// Sort the input array to check for duplicates
sort(n, n + m);
for (int i = 0; i < m - 1; i++)
{
if (n[i] == n[i + 1])
{
// set the flag to 1 and exit the loop if dupliate is found
f = 1;
break;
}
}
if (f == 1) {
// Duplicate found
return true;
}
else {
// No duplicates found
return false;
}
}
int main()
{
cout << "\n\nWelcome to LabEx :-)\n\n\n";
cout << " ===== Program to check if any duplicates are present in the input array ===== \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;
// Get the size of the two input arrays
n1 = sizeof(a1) / sizeof(a1[0]);
n2 = sizeof(a2) / sizeof(a2[0]);
// Print the first input array
cout << "\n\nThe elements of the first input array are :\n\n";
for (i = 0; i < n1; i++)
{
cout << a1[i] << " ";
}
// Check if the first input array contains duplicates
duplicate1 = containsDuplicate(a1, n1);
if (duplicate1) {
cout << "\n\nThe first input array contains duplicate";
}
else {
cout << "\n\nThe first input array does not contain any duplicate";
}
// Print the second input array
cout << "\n\n\n\nThe elements of the second input array are :\n\n";
for (i = 0; i < n2; i++)
{
cout << a2[i] << " ";
}
// Check if the second input array contains duplicates
duplicate2 = containsDuplicate(a2, n2);
if (duplicate2) {
cout << "\n\nThe second input array contains duplicate";
}
else {
cout << "\n\nThe second input array does not contain any duplicate";
}
cout << "\n\n\n";
return 0;
}
Executar o Código
Salve o código no arquivo ~/project/main.cpp e compile-o usando:
g++ main.cpp -o main && ./main
Compreender o Código
Para verificar a existência de duplicatas em um array, primeiramente criamos uma função chamada containsDuplicate(). Esta função recebe dois argumentos - o array de entrada n[] e seu tamanho m. A função sinaliza duplicatas encontradas com o valor 1 e, caso contrário, com o valor 0. Para encontrar duplicatas, a entrada n[] é primeiramente ordenada usando a função sort() definida pelo sistema. Em seguida, elementos adjacentes no array ordenado são comparados, e a flag é definida se duplicatas forem encontradas.
Na função principal, dois arrays de teste a1 e a2 são criados, cada um com uma potencial duplicata. Usando containsDuplicate(), verificamos cada array em busca de duplicatas e exibimos o resultado.
if (duplicate1) {
cout << "\n\nThe first input array contains duplicate";
}
else {
cout << "\n\nThe first input array does not contain any duplicate";
}
Esta saída indicará se o array de entrada contém duplicatas ou não.
Resumo
Duplicações em arrays podem ser facilmente determinadas usando a programação C++. Ao ordenar o array de entrada e, em seguida, comparar elementos adjacentes, é possível desenvolver um sistema eficiente de sinalização para indicar valores duplicados.



