目录
实现思路
-
冒泡排序,是通过每一次遍历获取最大/最小值
-
将最大值/最小值放在尾部/头部
-
然后除开最大值/最小值,剩下的数据在进行遍历获取最大/最小值
代码演示
package main
import "fmt"
func swap(a *int, b *int) {
tmp := *a
*a = *b
*b = tmp
}
//升序
func BubbleAsort(values []int) {
for i := 0; i < len(values)-1; i++ {
for j := i + 1; j < len(values); j++ {
if values[i] > values[j] {
values[i], values[j] = values[j], values[i]
}
}
}
fmt.Printf("values: %v\n", values)
}
//降序
func BubbleZsort(values []int) {
for i := 0; i < len(values)-1; i++ {
for j := i + 1; j < len(values); j++ {
if values[i] < values[j] {
values[i], values[j] = values[j], values[i]
}
}
}
fmt.Printf("values: %v\n", values)
}
func main() {
values := []int{4, 93, 84, 85, 80, 37, 81, 93, 27, 12}
fmt.Printf("values: %v\n", values)
BubbleAsort(values)
BubbleZsort(values)
}
输出:
[Running] go run "c:\work\1_src\5_GO_code\go_shujujiegou\go_maopao.go"
values: [4 93 84 85 80 37 81 93 27 12]
values: [4 12 27 37 80 81 84 85 93 93]
values: [93 93 85 84 81 80 37 27 12 4]
[Done] exited with code=0 in 1.266 seconds