
冒泡排序
单向冒泡排序的基本思想是,假设由小到大排序,对于给定的n个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换其位置,进行一轮比较和换位后,n个记录中的最大记录将位于第n位,然后对前(n-1)个记录进行第二轮比较;重复该过程直到进行比较的记录只剩下一个时为止.
package main
import "fmt"
func BubbleSort(array []int) {
llen := len(array)
for i := 0; i < llen-1; i++ {
for j := llen - 1; j > i; j-- {
if array[j] < array[j-1] {
tmp := array[j]
array[j] = array[j-1]
array[j-1] = tmp
fmt.Printf("排序过程: %v\n", array)
}
}
}
}
func main() {
array := []int{5, 4, 9, 8, 7, 6, 0, 1, 3, 2}
BubbleSort(array)
fmt.Println("排序结果如下:")
fmt.Println(array)
}
排序过程如下
[administrator@administrator-dev 20210330]$ go run 02.go
排序过程: [5 4 9 8 7 6 0 1 2 3]
排序过程: [5 4 9 8 7 0 6 1 2 3]
排序过程: [5 4 9 8 0 7 6 1 2 3]
排序过程: [5 4 9 0 8 7 6 1 2 3]
排序过程: [5 4 0 9 8 7 6 1 2 3]
排序过程: [5 0 4 9 8 7 6 1 2 3]
排序过程: [0 5 4 9 8 7 6 1 2 3]
排序过程: [0 5 4 9 8 7 1 6 2 3]
排序过程: [0 5 4 9 8 1 7 6 2 3]
排序过程: [0 5 4 9 1 8 7 6 2 3]
排序过程: [0 5 4 1 9 8 7 6 2 3]
排序过程: [0 5 1 4 9 8 7 6 2 3]
排序过程: [0 1 5 4 9 8 7 6 2 3]
排序过程: [0 1 5 4 9 8 7 2 6 3]
排序过程: [0 1 5 4 9 8 2 7 6 3]
排序过程: [0 1 5 4 9 2 8 7 6 3]
排序过程: [0 1 5 4 2 9 8 7 6 3]
排序过程: [0 1 5 2 4 9 8 7 6 3]
排序过程: [0 1 2 5 4 9 8 7 6 3]
排序过程: [0 1 2 5 4 9 8 7 3 6]
排序过程: [0 1 2 5 4 9 8 3 7 6]
排序过程: [0 1 2 5 4 9 3 8 7 6]
排序过程: [0 1 2 5 4 3 9 8 7 6]
排序过程: [0 1 2 5 3 4 9 8 7 6]
排序过程: [0 1 2 3 5 4 9 8 7 6]
排序过程: [0 1 2 3 5 4 9 8 6 7]
排序过程: [0 1 2 3 5 4 9 6 8 7]
排序过程: [0 1 2 3 5 4 6 9 8 7]
排序过程: [0 1 2 3 4 5 6 9 8 7]
排序过程: [0 1 2 3 4 5 6 9 7 8]
排序过程: [0 1 2 3 4 5 6 7 9 8]
排序过程: [0 1 2 3 4 5 6 7 8 9]
排序结果如下:
[0 1 2 3 4 5 6 7 8 9]