Hello everyone, in this tutorial, we will learn how to write a simple Selection Sort in Golang programming language. This example program has been tested and shared in the same post.

### What is Selection Sort?

The selection sort algorithm sorts an items by repeatedly finding the minimum element from unsorted items and putting it at the beginning. The algorithm maintains two subarrays in a given array. The following example explains how it works.

### Function – Selection Sort in Golang

The below function is responsible to sort a given numbers array by using Selection Sort algorithm.

```func selectionSort(numbers []int) []int {
var mid_index int;
for i := 0; i < len(numbers); i++ {
mid_index = i
for j := i + 1; j < len(numbers); j++ {
if numbers[j] < numbers[mid_index] {
mid_index = j
}
}
temp := numbers[mid_index]
numbers[mid_index] = numbers[i]
numbers[i] = temp
}
return numbers
}
```

### Full Example

```package main
import "fmt"
func selectionSort(numbers []int) []int {
var mid_index int;
for i := 0; i < len(numbers); i++ {
mid_index = i
for j := i + 1; j < len(numbers); j++ {
if numbers[j] < numbers[mid_index] {
mid_index = j
}
}
temp := numbers[mid_index]
numbers[mid_index] = numbers[i]
numbers[i] = temp
}
return numbers
}
// main function
func main() {
fmt.Println("Selection Sort \n")
// creating an integer array with values
number := []int{2, 1, 4, 6, 5, 3, 8, 7, 10, 9}
fmt.Println("Before Sorting:", number)
// calling the selectionSort function
number = selectionSort(number)
fmt.Println("\nAfter Sorting:", number)
}
```

### Output

```Selection Sort
Before Sorting: [2 1 4 6 5 3 8 7 10 9]
After Sorting: [1 2 3 4 5 6 7 8 9 10]
```

Categories:

Tags: