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


猜你喜欢

转载自blog.51cto.com/dreamlinux/2360644