Go冒泡排序練習

package main
//要求:隨機生成5個元素的數組,並使用冒泡排序對其排序  從小到大
//思路分析:
//隨機數用math/rand生成爲了更好的保證其不會重複 使用 rand.New(rand.NewSource(time.Now().UnixNano()))並定義一個隨機生成函數
//用冒泡排序對其排序
import (
   //"math/rand"
   //"time"
   "fmt"
   "math/rand"
   "time"
)

var  arrnum [5]int = [5]int{109,137,49,190,87}
//定義冒泡函數
//重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,若是他們的順序(如從大到小、首字母從A到Z)
// 錯誤就把他們交換過來。走訪元素的工做是重複地進行直到沒有相鄰元素須要交換,也就是說該元素已經排序完成
func BubbleSort( arrary *[5]int){
   //第一次比較
   fmt.Println("排序前arr=",(*arrary))
   tmp :=0
   for  j := 0 ; j <len(arrary)-1 ;j++{
      for  i :=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))

}


var  Arrname  [5]int

func main() {
   r := rand.New(rand.NewSource(time.Now().UnixNano()))//生成隨機數字
   for  i := 0; i < len(Arrname) ; i++ {
      Arrname[i] = r.Intn(20000) //指定生成隨機數的範圍
   }
   BubbleSort(&Arrname)

}

image.png

相關文章
相關標籤/搜索