算法之选择排序算法(golang)
直接上代码:核心思想就是每一次比较都把最小的值放到前面
package main
import "fmt"
func swap(i, j int, a []int) {
a[i], a[j] = a[j], a[i]
}
func SelectSort(a []int) {
if len(a) == 0 {
return
}
length := len(a)
// for v,k:= range a{
// }
for i := 0; i < length-1; i++ {
//最后一次 不用比较了
for j := i; j < length; j++ {
if a[i] > a[j] {
swap(i, j, a)
}
}
fmt.Println(a)
}
}
func main() {
a := []int{
98, 3, 56, 23, 45}
SelectSort(a)
}
结果
➜ selectSort time go run select_sort.go
[3 98 56 23 45]
[3 23 98 56 45]
[3 23 45 98 56]
[3 23 45 56 98]
go run select_sort.go 0.15s user 0.08s system 110% cpu 0.204 total
还没有评论,来说两句吧...