抉择排序的一种Go实现

package mainimport "fmt"//抉择排序的外围是第n次将数组中前面len(arr) - n个元素的最大或者最小值与第n个元素进行替换func selectSort(arr *[5]int){    for j := 0; j < len(arr) - 1; j++ { //循环次数为len(arr) - 1        //假如第一个元素的值最大(降序排序)        max := arr[j]        maxIndex := j        //遍历前面的元素进行比拟        for i := j + 1; i < len(arr); i++ {            if max < arr[i] {                max = arr[i] //这里不能焦急替换值,只须要把最大的给max                maxIndex = i            }        }        //替换值        if maxIndex != j {            arr[j], arr[maxIndex] = arr[maxIndex], arr[j]        }        fmt.Printf("第%d次 %v\n", j+1, *arr)    }}func main(){    arr := [5]int{1,3,6,9,8}    selectSort(&arr)}

输入:

第1次 [9 3 6 1 8]第2次 [9 8 6 1 3]第3次 [9 8 6 1 3]第4次 [9 8 6 3 1]