Lun Oct 23, 2006 2:48 am
|
 |
pbellon
Perlero Nuevo

|
Registrado: 22 Oct 2004
Mensajes: 33
|
|
| Ordenar eliminando duplicados |
|
|
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
 |
|
|
|

Lun Oct 23, 2006 3:54 am
|
 |
macgregor
Perlero Frecuente

|
Registrado: 09 Dic 2004
Mensajes: 117
Ubicación: españa
|
|
|
|
|
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. |
|

Lun Oct 23, 2006 5:57 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4226
Ubicación: Valladolid, España
|
|
|
|
Powered by phpBB © 2001, 2005 phpBB Group
|