diff options
Diffstat (limited to 'bubble.adb')
-rw-r--r-- | bubble.adb | 64 |
1 files changed, 0 insertions, 64 deletions
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; - |