{
MICROPAIS 29 de julio 2005
Algoritmo de ordenacion bastante rapido, parecido al QUIT SORT de basic
ojo se parecen pero no son iguales (este es de fabricacion casera)
en listas de ordenacion de mas de 10.000 elementos deberas implementar
algun oto algoritmo mas eficiente.
}
uses crt;
var maximo:integer;
matriz:array[1..10]of string[10];
cnt:integer;
{****************************************************************************}
{
El procedimiento ordenar necesita tener la variable global maximo ,actua
sobre el array global MATRIZ en este caso es de cadenas de texto, pero puede
ser numerico, actuar sobre registros etc , para ello deberas cambiar
tambien la variable interna T ,este procedimiento parece simple pero es mas
complicado de lo que parece , lo que si es facil es exportarlo a otras
aplicaciones con cambios minimos.
puedes cambiar el signo de ordenacion directamente.
}
procedure ordenar(var maximo:integer);
var
longitud,salto:integer;
terminado:boolean;
alto,bajo:integer;
a,b:integer;
t:string;
contador:integer;
begin { procedure }
longitud:=maximo;
salto:=1;
while salto <=longitud do begin salto:=salto * 2;end;
while salto >1 do
begin {salto}
{--------------------------------------------------------------------------}
salto:=((salto-1) div 2)+1;
{...........................................}
repeat
terminado:=true;
for alto:=1 to longitud-salto do
begin{for}
bajo:=alto+salto;
{*****************************************************}
{ para una ordenacion inversa cambia de signo de > a <}
{ aqui es donde deberas efectuar cambios para exportar}
{ este procedimiento a tus programas. }
if matriz[alto]> matriz[bajo] then
begin
t:=matriz[alto];
matriz[alto]:=matriz[bajo];
matriz[bajo]:=t;
terminado:=false;
end;
{*****************************************************}
end;{for}
until (terminado);
end;{salto}
end;{ procedure }
clrscr;
writeln('___________ Contenido de la MATRIZ Antes de ordenar');
for cnt:=1 to 10 do writeln( matriz[cnt]);
maximo:=10; { Total de elementos en la matriz }
ordenar(maximo); { llamada al procedimiento ordenar }
writeln('___________ Contenido de la MATRIZ Despues de ordenar');
for cnt:=1 to 10 do writeln( matriz[cnt]);
writeln(' Pulsa una tecla para continuar');
readln;
end.
Valora esta respuesta
0
Comentar
MATRIZ
Publicado por diana (1 intervención) el 06/08/2005 19:37:05
ejercicio
Valora esta respuesta
0
Comentar
RE:MATRIZ
Publicado por estefani rivas (1 intervención) el 01/03/2006 20:41:34
por fa necesito un programa que ordene matrices
puede ser tambien una factura es decir arreglos bidimensionales