The algorithm proceeds by finding the smallest (or largest, depending on sorting order) component in the unsorted sublist, exchange (swapping) it with the leftmost unsorted component (putting it in sorted order), and move the sublist boundaries one component to the right. It has an O(n2) time complexity, which makes it inefficient on large lists, and generally performs worse than the like insertion sort.

COMING SOON!

```
package main
/*
* Selection sort - http://en.wikipedia.org/wiki/Selection_sort
*/
func SelectionSort(arr []int) {
var min int = 0
var tmp int = 0
for i := 0; i < len(arr); i++ {
min = i
for j := i + 1; j < len(arr); j++ {
if arr[j] < arr[min] {
min = j
}
}
tmp = arr[i]
arr[i] = arr[min]
arr[min] = tmp
}
}
```