package main

import "fmt"

func main() {
	var arr = []int{9, 7, 6, 8, 4, 1, 5, 2, 3}
	for i := 1; i < len(arr); i++ {
		for j := i; j > 0; j-- {
			if arr[j] < arr[j-1] {
				swap(arr, j, j-1)
			}
		}
		fmt.Printf("arr: %v\n", arr)
	}

}
func swap(arr []int, a, b int) {
	var temp = arr[a]
	arr[a] = arr[b]
	arr[b] = temp
}

输出

arr: [9 7 6 8 4 1 5 2 3]
arr: [9 7 6 8 4 1 5 2 3]
arr: [7 9 6 8 4 1 5 2 3]
arr: [6 7 9 8 4 1 5 2 3]
arr: [6 7 8 9 4 1 5 2 3]
arr: [4 6 7 8 9 1 5 2 3]
arr: [1 4 6 7 8 9 5 2 3]
arr: [1 4 5 6 7 8 9 2 3]
arr: [1 2 4 5 6 7 8 9 3]
arr: [1 2 3 4 5 6 7 8 9]