From 63c3043200de6b28a8c192f1b5625940435ea55e Mon Sep 17 00:00:00 2001 From: Jed Barber Date: Sat, 17 Oct 2015 14:20:48 +1100 Subject: Organised source code a bit, added makefile with clean target --- bubble.adb | 64 -------------------------------------------------------------- 1 file changed, 64 deletions(-) delete mode 100644 bubble.adb (limited to 'bubble.adb') diff --git a/bubble.adb b/bubble.adb deleted file mode 100644 index f4f2485..0000000 --- a/bubble.adb +++ /dev/null @@ -1,64 +0,0 @@ - - -package body Bubble is - - - procedure Swap(A, B : in out Element_T) is - Temp : Element_T; - begin - Temp := A; - A := B; - B := Temp; - end Swap; - - - procedure Sort(Arr : in out Array_T) is - Swapped : Boolean; - begin - if Arr'Length <= 1 then - return; - end if; - - loop - Swapped := False; - - for I in Index_T range Arr'First .. Index_T'Pred(Arr'Last) loop - if Arr(I) > Arr(Index_T'Succ(I)) then - Swap( Arr(I), Arr(Index_T'Succ(I)) ); - Swapped := True; - end if; - end loop; - - exit when not Swapped; - end loop; - - end Sort; - - - procedure Optimized(Arr : in out Array_T) is - N, NewN : Index_T; - begin - if Arr'Length <= 1 then - return; - end if; - - N := Arr'Last; - loop - NewN := Arr'First; - - for I in Index_T range Arr'First .. Index_T'Pred(N) loop - if Arr(I) > Arr(Index_T'Succ(I)) then - Swap( Arr(I), Arr(Index_T'Succ(I)) ); - NewN := I; - end if; - end loop; - - N := NewN; - exit when N = Arr'First; - end loop; - - end Optimized; - - -end Bubble; - -- cgit