Bueno tengo dos preguntas la primera seria sobre como hacer que no se repitan los elementos en estos "conjuntos" y seria sobre como eliminar elementos repetidos. Se que tengo que hacer una comparación entre los elementos de uno y otro. Pero ya lo intente y no se como implementarlo. Podrían ayudarme?.
int k=1;
for(int j=0;j<5;j++){
a[j]=A[j];
for(int j=0;j<10;j++){
if (A[j]==B){
k=0;
}
}
if(k==1) {
a[j]=B;
i++;
}
k==1;
}
}
for(int j=0;j<10;j++){
System.out.print(a[j]+" ");
}
Una modificación del agoritmo de ordenamiento counting, hace lo que quieres...
Ese algoritmo tiene serias limitaciones, porlo que no vale para todos los arrays.
Los límites son:
- Solo números.
- Deben ser enteros (no valen decimales, porque los índices de un array siempre son vaores enteros).
- Valores entre el mínimo y el máximo pequeños (porque precisa un array adicional en memoria de tamaño (valorMaximo-valorMinimo + 1) ).
Si tu array se ciñe a esos límites, puedes usarlo, no existe ninguna implementación más rápida que esta (pero con esas limitaciones).
array = funcion OrdenarYEliminarRepes( array Ar() )
entero k, min, max, n
array temp(), salida()
// recorrer el array para buscar el valor mayor y menor del array
min = ar(0)
max = min
bucle para k desde 1 a ar.count-1
si (ar(k) < min) luego
min = ar(k)
oSi (ar(k) > max) luego
max = ar(k)
fin si
fin bucle
// OJO: si min es pongamos 20 y máx 100 millones se creará un array de 100 millones-20, aunque tu array de entrada solo tenga 40 valores...
redimensionar temp(desde 0 hasta max-min)
// recorrer el bucle otra vez para saber quñe valores aparecen y consignarlos en el array temp.
bucle para k desde 0 hasta ar.count-1
si (temp( ar(k)+min ) = 0) luego
n +=1
temp( ar(k)+min ) = 1
fin si
fin bucle
redimensionar salida (0 a n-1)
n = 0
// recorrer el array temp, para consignar los valores presentes a la salida.
bucle para k desde 0 hasta max-min
si (temp( ar(k)+min ) = 1) luego
salida(n) = temp( ar(k)+min )
n +=1
fin si
fin bucle
devolver salida
fin funcion
et voilá... ya tienes el array ordenado y con solo una copia de cada valor (sin duplicados). Recuerda que solo vale si el array se atiene a los límitaciones indicadas....