Página 1 de 1

Ordenar un array de una dimensión

Publicado: 29 Nov 2012, 20:51
por arkcrew
Buenas,

Quería preguntar como se hace lo siguiente ya que me he liado yo mismo a la hora de plantear el problema y necesito aclararlo.

Tengo un array que cumple lo siguiente: a,b,c,a2,b2,c2....

Necesito que esos datos se ordenen de manera que el que tenga la fecha (c) más grande sea el primero y mantenga su conjunto es decir que suponiendo que c2 es la fecha más grande del conjunto, el array quede: a2,b2,c2,a,b,c

No sé si me he expresado con claridad..

Saludos!

Re: Ordenar un array de una dimensión

Publicado: 30 Nov 2012, 07:02
por chekok
Puedes exponer un ejemplo real de los valores a tratar?

Re: Ordenar un array de una dimensión

Publicado: 30 Nov 2012, 16:35
por Chefito
Mmmmm....depende de los datos que tengas que ordenar, se puede hacer una función de ordenación más facil y rápida, o más dificil y lenta.
Que rango pueden tener las letras? Ejemplo, de la "a" a la "d", o de la "a" a la "p", o todo el abecedario. Pueden haber más de dos letras?
Cuantos dígitos tienen los números? Ejemplo del 1 al 9, o del 1 al 100, etc.

Saludos.

Re: Ordenar un array de una dimensión

Publicado: 04 Dic 2012, 19:22
por arkcrew
Hola,

Perdón por ser tan descuidado, al final lo solucioné pasando el array a uno de dos dimensiones, con campos tipo campo1,campo2,fecha y ordenando con array sort con el index 2 para que tome la fecha.

Os muestro la función con un ejemplo:

Código: Seleccionar todo

#include <Array.au3>
Local $array[9] = ["EAV-73195391","amtuvkx7e3","01/01/2013","EAV-73215992","vdt7a2t4kf","02/01/2013","EAV-73217786","ha3fhrardu","03/01/2013"]
_ArrayDisplay(ArrayOrder($array))
Func ArrayOrder($array)
Local $array2D[UBound($array)/3][3]
Local $n = 0
For $a = 0 to UBound($array)-1 step 3
	$array2D[$n][0] = $array[$a];usuario
	$array2D[$n][1] = $array[$a+1];clave
	$array2D[$n][2] = $array[$a+2];fecha$array[$a-2];usuario
	$n +=1
next
_ArraySort($array2D,1,0,0,2)
return $array2D;Array ordenado
EndFunc
Saludos!