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 --- comb.adb | 46 ---------------------------------------------- 1 file changed, 46 deletions(-) delete mode 100644 comb.adb (limited to 'comb.adb') diff --git a/comb.adb b/comb.adb deleted file mode 100644 index d13847c..0000000 --- a/comb.adb +++ /dev/null @@ -1,46 +0,0 @@ - - -package body Comb 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; - Gap : Natural; - - Shrink : constant Float := 1.3; - begin - if Arr'Length <= 1 then - return; - end if; - - Gap := Arr'Length; - - loop - Gap := Natural(Float'Floor(Float(Gap) / Shrink)); - if Gap < 1 then - Gap := 1; - end if; - - Swapped := False; - for I in Integer range Index_T'Pos(Arr'First) .. (Index_T'Pos(Arr'Last) - Gap) loop - if Arr(Index_T'Val(I)) > Arr(Index_T'Val(I + Gap)) then - Swap( Arr(Index_T'Val(I)), Arr(Index_T'Val(I + Gap)) ); - Swapped := True; - end if; - end loop; - exit when Gap = 1 and not Swapped; - end loop; - end Sort; - - -end Comb; - -- cgit