Tengo una asignación para crear un algoritmo para buscar duplicados en una matriz que incluye valores numéricos. pero no ha dicho qué tipo de números, números enteros o flotantes. He escrito el siguiente pseudocódigo:Algoritmo para buscar duplicados en una matriz
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++
¿he creado un algoritmo eficiente? Creo que hay un problema en mi algoritmo, devuelve números duplicados varias veces. por ejemplo, si array incluye 2 en dos para dos índices tendré ... 2, 2, ... en la salida. ¿Cómo puedo cambiarlo para devolver cada duplicado solo una vez? Creo que es un buen algoritmo para enteros, pero ¿funciona también para números flotantes?
Tenga cuidado al usar A [i + 1] - si i = (A.length - 1), sucederán cosas malas. Desea que el bucle for continúe solo cuando
Seth
es correcto, gracias por su guía –