Página 1 de 1

Ordenar eliminando duplicados

NotaPublicado: 2006-10-23 03:48 @200
por pbellon
Hola,

¿cómo se puede, usando la función sort, ordenar eliminando duplicados?

Ej.:
@a = (1,4,2,2,6,7,7,8,1,3);

que muestre 1,2,3,4,6,7,8

Saludos
8)

NotaPublicado: 2006-10-23 04:54 @246
por macgregor
Hola.

Creo que en este ejemplo que pones, la forma más fácil de eliminar duplicados és metiendo tu vector @a en un hash %a.

Recorre tu vector y pon cada elemento como clave del hash, en cuanto al valor de esa clave puedes no poner nada o utilizar un contador para saber cuántas veces está duplicado cada elemento.
De esta manera cuando termines de recorrer el vector tendrás un hash cuyas claves són los elementos de tu vector original sin repeticiones.

Sólo tendrás que recorrer las claves de tu hash y volcarlas en un vector.
Si recorres el hash utilizando la función sort tu vector estará ordenado.

No he puesto nada de código, ya que entiendo que tu intención es practicar para aprender, o resolver una tarea académica.

Si tienes alguna dificultad con algo de código te ayudaré encantado.

Un saludo.

NotaPublicado: 2006-10-23 06:57 @331
por explorer
La pregunta de pbellon es tan común ;-) que está en la faq4.