Ordenar un array de una dimensión

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.
Responder
Avatar de Usuario
arkcrew
Profesional del Autoit
Mensajes: 506
Registrado: 28 Sep 2009, 19:17
Ubicación: Granada, España
Contactar:

Ordenar un array de una dimensión

Mensaje 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!
Avatar de Usuario
chekok
Hacker del Foro
Mensajes: 111
Registrado: 16 Sep 2011, 11:50
Ubicación: Valencia / España
Contactar:

Re: Ordenar un array de una dimensión

Mensaje por chekok »

Puedes exponer un ejemplo real de los valores a tratar?
La vida es larga y dura.
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Ordenar un array de una dimensión

Mensaje 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.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Avatar de Usuario
arkcrew
Profesional del Autoit
Mensajes: 506
Registrado: 28 Sep 2009, 19:17
Ubicación: Granada, España
Contactar:

Re: Ordenar un array de una dimensión

Mensaje 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!
Responder