1. Bubble sort
package main
import "fmt"
func main() {
arr := []int{8, 12, 46, 12, 2, 4, 15, 3, 9, 44, 5, 6, 1, 59, 2}
fmt.Println(bubbleSort(arr))
}
func bubbleSort(arr []int) []int {
if len(arr) == 0 {
return arr
}
for i := 0; i < len(arr); i++ {
for j := 0; j < len(arr); j++ {
if arr[i] > arr[j] {
arr[j], arr[i] = arr[i], arr[j]
}
}
}
return arr
}
2. Insertion sort
package main
import "fmt"
func main() {
arr := []int{8, 12, 46, 12, 2, 4, 15, 3, 9, 44, 5, 6, 1, 59, 2}
fmt.Println(insertionSort(arr))
}
func insertionSort(arr []int) []int {
l := len(arr)
if l == 0 {
return arr
}
for i := 0; i < l-1; i++ {
for j := i + 1; j > 0; j-- {
if arr[j] < arr[j-1] {
arr[j], arr[j-1] = arr[j-1], arr[j]
}
}
}
return arr
}
3. Selection sort
package main
import "fmt"
func main() {
arr := []int{8, 12, 46, 12, 2, 4, 15, 3, 9, 44, 5, 6, 1, 59, 2}
fmt.Println(selectionSort(arr))
}
func selectionSort(arr []int) []int {
l := len(arr)
if l == 0 {
return arr
}
for i := 0; i < l; i++ {
min := i
for j := i + 1; j < l; j++ {
if arr[j] < arr[min] {
min = j
}
}
arr[i], arr[min] = arr[min], arr[i]
}
return arr
}