Ho un compito per creare un algoritmo per trovare duplicati in un array che include valori numerici. ma non ha detto che tipo di numeri, interi o galleggianti. Ho scritto il seguente pseudocodice:Algoritmo per trovare duplicati in un array
FindingDuplicateAlgorithm(A) // A is the array
mergeSort(A);
for int i <- 0 to i<A.length
if A[i] == A[i+1]
i++
return A[i]
else
i++
ho creato un algoritmo efficiente? Penso che ci sia un problema nel mio algoritmo, restituisce i numeri duplicati più volte. per esempio se array include 2 in due per due indici avrò ... 2, 2, ... nell'output. come posso cambiarlo per restituire ogni duplicato solo una volta? Penso che sia un buon algoritmo per i numeri interi, ma funziona anche per i numeri float?
Prestare attenzione all'utilizzo di A [i + 1] - se i = (lunghezza A. - 1), accadranno cose brutte. Vuoi che il ciclo for continui solo quando i
Seth
è corretto, grazie per la tua guida –