for length = 0

     selection_sort
     next = 0  a.size() = 0
     next is not less than -1, so loop is not entered and function 
     selection_sort is exited

for length = 1

     selection_sort
     next = 0  a.size() = 1
     next is not less than 0, so loop is not entered and function 
     selection_sort is exited

for length = 2

     selection_sort
     next = 0  a.size() = 2     - loop statements are done exactly once
     min_pos = min_position(a, 0, 1)
          min_pos = 0
          i = 1 to 1, check if a[i] < a[min_pos] - this checks if element 1 
          is less than element 0

for length = 3

     selection_sort
     next = 0   a.size() = 3     - loop statements are done twice 
     min_pos = min_position(a, 0, 2)
          min_pos = 0
          i = 1 to 2, check if a[i] < a[min_pos] - this checks if element 1 
          is less than element 0 and if element 2 is less than element 1
     min_pos = min_position(a, 1, 2)
          min_pos = 1
          i = 2 to 2, check if a[i] < a[min_pos] - this checks if element 2 
          is less than element 1