How does selection sort sort?
Neither the code you have nor the Wikipedia article highlight the concept of selection sort. Therefore, consider this (functional) pseudocode:

def selection-sort []         = []
|   selection-sort x::xs as l = 
      let m = min l
      in
        m::(selection-sort (delete m l))
      end;


Here the idea is more clear


    $\ \ $1. Select the minimum from the list and delete it.
  $\ \ $2. Sort the remainder recursively.
  $\ \ $3. Prepend the minimum.

 The same works the other way around with the maximum, obviously.


Iterative code on arrays works slightly differently -- but the idea remains the same.