1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
package sort import ( "algorithms/ds" ) func Selection(a ds.ArrayList) ds.ArrayList { length := len(a) for i := 0; i < length; i++ { min := i for j := i + 1; j < length; j++ { if a[min] > a[j] { min = j } } if min == i { continue } tmp := a[i] a[i] = a[min] a[min] = tmp } return a }