procedure TEST_BUBBLE_SORT is type INTEGER_ARRAY is array (INTEGER range <> ) of INTEGER; TEST_ARRAY : INTEGER_ARRAY (1 .. 10) := (10,9,8,7,6,5,4,3,2,1); procedure SWAP (X, Y : in out INTEGER ) is TEMP : INTEGER; begin TEMP := X; X := Y; Y := TEMP; end SWAP; procedure BUBBLE_MAX (ARG : in out INTEGER_ARRAY) is begin for INDEX in ARG'FIRST .. ARG'LAST-1 loop if ARG(INDEX) > ARG(INDEX+1) then SWAP (ARG(INDEX), ARG(INDEX+1) ); end if; end loop; end BUBBLE_MAX; procedure BUBBLE_SORT (BUFFER : in out INTEGER_ARRAY) is begin for TOP in reverse BUFFER'FIRST+1 .. BUFFER'LAST loop BUBBLE_MAX (BUFFER (BUFFER'FIRST .. TOP)); end loop; end BUBBLE_SORT; begin BUBBLE_SORT (TEST_ARRAY); end TEST_BUBBLE_SORT;