package body sorting5 is -- same subprograms as sorting but not in the same order procedure selection_sort3(list : in out integerList ; nbElem : in integer) is i, j : integer; posCurMin : integer; dummy : integer; begin for i in 0 .. nbElem-1 loop posCurMin := i; for j in i+1 .. nbElem-1 loop if list(j) < list(posCurMin) then posCurMin := j; end if; end loop; if i /= posCurMin then dummy := list(i); list(i) := list(posCurMin); list(posCurMin) := dummy; end if; end loop; end selection_sort3; procedure buble_sort3(list : in out integerList ; nbElem : in integer) is i : integer; changed : boolean; dummy : integer; begin changed := true; while changed loop changed := false; for i in 0 .. nbElem-2 loop if list(i) > list(i+1) then dummy := list(i); list(i) := list(i+1); list(i+1) := dummy; changed := true; end if; end loop; end loop; end buble_sort3; end sorting5;