Está en la página 1de 2

tilizando el mtodo de la burbuja...

no es el ms eficiente, pero es un buen ejemplo y es bastante


sencillo de entender.
Lo que hace es leer un arreglo de nmeros enteros. Cada vez que lo lee, va acomodando el
nmero mayor al final de la lista.
PROGRAM Ordena(input, output);
CONST
(* Tamao del arreglo *)
MaxElts = 50;
TYPE
(* Tipo de elementos del arreglo *)
IntArrType = ARRAY [1..MaxElts] OF Integer;
VAR
(* Definicin de ndices *)
i, j, tmp, size: integer;
(* Arreglo de enteros *)
arr: IntArrType;
(* Lectura del arreglo *)
PROCEDURE ReadArr(VAR size: Integer; VAR a: IntArrType);
BEGIN
size := 1;
WHILE NOT eof DO BEGIN
readln(a[size]);
IF NOT eof THEN
size := size + 1
END
END;
BEGIN
(* Lectura *)
ReadArr(size, arr);
(* Usando el mtodo de la burbuja *)
FOR i := size - 1 DOWNTO 1 DO
FOR j := 1 TO i DO
IF arr[j] > arr[j + 1] THEN BEGIN
tmp := arr[j];
arr[j] := arr[j + 1];
arr[j + 1] := tmp;
END;
(* Imprime en pantalla el resultado *)

FOR i := 1 TO size DO
writeln(arr[i])
END.
Source:
Como ves, no son 200 lneas de cdigo. Slo es cosa de echarle un poquito de ingenio.

También podría gustarte