Go氣泡排序練習
摘要:
package main
//要求:隨機生成5個元素的陣列,並使用氣泡排序對其排序從小到大
//思路分析:
//隨機數用math/rand生成為了更好的保證其不會重複 使用 rand.New(rand.NewSource(time.Now().UnixNano()))並定義一個隨機生成函式...
package main //要求:隨機生成5個元素的陣列,並使用氣泡排序對其排序從小到大 //思路分析: //隨機數用math/rand生成為了更好的保證其不會重複 使用 rand.New(rand.NewSource(time.Now().UnixNano()))並定義一個隨機生成函式 //用氣泡排序對其排序 import ( //"math/rand" //"time" "fmt" "math/rand" "time" ) vararrnum [5]int = [5]int{109,137,49,190,87} //定義冒泡函式 //重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如從大到小、首字母從A到Z) // 錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素已經排序完成 func BubbleSort( arrary *[5]int){ //第一次比較 fmt.Println("排序前arr=",(*arrary)) tmp :=0 forj := 0 ; j <len(arrary)-1 ;j++{ fori :=0;i <len(arrary)-1-j ;i++ { if arrary[i] > arrary[i+1]{ tmp = arrary[i] arrary[i] = arrary[i+1] arrary[i+1] = tmp } } } fmt.Println("排序後arr=",(*arrary)) } varArrname[5]int func main() { r := rand.New(rand.NewSource(time.Now().UnixNano()))//生成隨機數字 fori := 0; i < len(Arrname) ; i++ { Arrname[i] = r.Intn(20000) //指定生成隨機數的範圍 } BubbleSort(&Arrname) }