[ Foro de Pascal ]

arreglos

04-Jan-2016 17:51
Invitado (nainBenitez)
1 Respuestas

cordial saludo, queria pedirles ayuda respecto a como puedo orientarme para poder iniciar con el siguiente ejercicio:

Dados dos arreglos A y B de M y N enteros respectivamente, ordenados ascendentemente, genere un tercer arreglo de a lo sumo N+M elementos que contenga los elementos de A y B ordenados ascendentemente, pero sin elementos repetidos. Nota: no debe utilizar ningún algoritmo de ordenamiento, y los arreglos A y B deben ser recorridos una sola vez.

como hago para no tener en cuenta los repetidos y si me podeis explicar porque la nota del ejercicio habla de que los arreglos A y B deben ser recorridos una sola vez a que se refieren con esto?

gracias por cualquier orientacion al respecto


09-Jan-2016 16:55
Nacho Cabanes (+84)

Lo que te están pidiendo es parte de la rutina de ordenación conocida como "MergeSort".

La solución es llevar dos contadores, para saber en qué posición te encuentras en cada uno de los arreglos (incialmente, ambas será la posición 1). A partir de ese punto, vas comparando el valor correspondiente (el primero) del primer arreglo y del segundo arreglo. Tomas el menor de ambos y avanzas el contador dentro de ese arreglo. Vuelves a comparar las posiciones actuales de ambos arrays y a tomar el menor, y así sucesivamente.

La única diferencia en tu caso es que además debes asegurarte de que el dato es mayor que el anterior que ya habías guardado; si es igual, debes ignorarlo (pero avanzar el contador), para no tener datos repetidos al final.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)