Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés. Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
{ 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