【代码】Go语言选择排序

前言

通过Go语言实现选择排序
将数组从第一个数据开始遍历所有数据,每次遍历时,对比是不是当前位置到末尾位置中数据最小(最大)的一个数,如果不是最小(最大)的一个数,就进行记录,最后将当前遍历的数据与当前位置到末尾位置中数据最小的数交换位置,全部完成遍历后就得到了正序(倒序)的有序数组

源代码

从小到大递增

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
func selectSortDesc(arr []int) {
for i := 0; i < len(arr); i++ {
var minNumber int = arr[i]
var minIndex int = i
for j := i; j < len(arr); j++ {
if minNumber > arr[j] {
minNumber = arr[j]
minIndex = j
}
}
if minIndex != i {
arr[i], arr[minIndex] = arr[minIndex], arr[i]
}
}
}

从大到小递减

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
func selectSortAsc(arr []int) {
for i := 0; i < len(arr); i++ {
var maxNumber int = arr[i]
var maxIndex int = i
for j := i; j < len(arr); j++ {
if maxNumber < arr[j] {
maxNumber = arr[j]
maxIndex = j
}
}
if maxIndex != i {
arr[i], arr[maxIndex] = arr[maxIndex], arr[i]
}
}
}

完成

参考文献

哔哩哔哩——尚硅谷