Ordenar datos array dinámico
Publicado por Pascual (12 intervenciones) el 12/11/2006 13:19:01
¿Cómo ordenais los datos de un array dinámico?. He probado a hacer esto pero me da mal el resultado:
Hago esto pero no me lo ordena bien. Esta es la traza que hace:
Supongamos que tenemos este vector --> (1,2,3) entonces lo queremos ordenar
1<2 --> 2 1 3
1<3 --> 2 3 1 Hasta aquí va bien la cosa.
1<3 --> 2 3 3 Esto ya lo hace mal deberúa de ser 2<3 --> 3 2 1
No se por qué no me lo ordena bien, ¿alguna idea?. Me estoy volviendo loco. Gracias.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure cLista.Ordenar_lista (VAR Lista: cLista);
var
i,j: integer;
aux: cResultado;
ordenado: boolean;
begin
repeat
ordenado:= true;
for j:=0 to Lista.Longitud-1 do
begin
IF Lista.Objetos[j].clave < Lista.Objetos[j+1].clave THEN
BEGIN
aux := cResultado.Create;
aux := Lista.Objetos[j];
Lista.Objetos[j] := Lista.Objetos[j+1];
Lista.Objetos[j+1] := aux;
Ordenado := False;
END;
i:=i+1;
end;
Until Ordenado Or ( i > (Lista.Longitud-1) )
end;
Hago esto pero no me lo ordena bien. Esta es la traza que hace:
Supongamos que tenemos este vector --> (1,2,3) entonces lo queremos ordenar
1<2 --> 2 1 3
1<3 --> 2 3 1 Hasta aquí va bien la cosa.
1<3 --> 2 3 3 Esto ya lo hace mal deberúa de ser 2<3 --> 3 2 1
No se por qué no me lo ordena bien, ¿alguna idea?. Me estoy volviendo loco. Gracias.
Valora esta pregunta


0