1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- {
- * A simple bubble sort program. Reads integers, one per line, and prints
- * them out in sorted order. Blows up if there are more than 49.
- }
- PROGRAM Sort(input, output);
- CONST
- {* Max array size. *}
- MaxElts = 50;
- TYPE
- {* Type of the element array. *}
- IntArrType = ARRAY [1..MaxElts] OF Integer;
-
- VAR
- {* Indexes, exchange temp, array size. *}
- i, j, tmp, size: integer;
-
- {* Array of ints *}
- arr: IntArrType;
-
- {* Read in the integers. *}
- 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
- {* Read *}
- ReadArr(size, arr);
-
- {* Sort using bubble sort. *}
- 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;
-
- {* Print. *}
- FOR i := 1 TO size DO
- writeln(arr[i])
- END.
-
-
|