一、概述
go语言中的冒泡排序和java中的冒泡排序的原理一样,如果你懂得java的冒泡排序,那么go只是换了一种写法而已。冒泡,简而言之,就是相邻的两个数据进行比较,进行移位,向冒泡一样。例如一个集合有n个数,那么排序的次数就是n-1次排序,每次排序的过程中,这次排序需要进行n-1-i此移位。就是两个for循环,外循环小于n-1,内循环小于n-1-i
二、代码示例
package main
import "fmt"
import "math/rand"
import "time"
func main() {
// 设置种子
rand.Seed(time.Now().UnixNano())
var arr [10]int
n := len(arr)
for i := 0; i < n; i++ {
arr[i] = rand.Intn(500)
fmt.Printf("%d ,", arr[i]) // 产生在500以内的随机数
}
fmt.Printf("\n")
// 冒泡排序:相邻两个数进行比较,大于则进行交换。升序
for i := 0; i < n-1; i++ {
for j := 0; j < n-1-i; j++ {
if arr[j] > arr[j+1] {
arr[j], arr[j+1] = arr[j+1], arr[j]
}
}
}
fmt.Println("排序后的结果:")
for i := 0; i < n; i++ {
fmt.Printf("%d ,", arr[i])
}
fmt.Printf("\n")
}