代码改变世界

23_随机数的生成和冒泡排序

2019-08-31 17:21  StevenZhao  阅读(453)  评论(0编辑  收藏  举报
package main

import (
	"fmt"
	"math/rand" //随机数生成器包
	"time"
)

//
func main() {

	//先种下一个种子seed
	//rand.Seed(665)//只要随机种子函数里面的参数相同,那么每次产生的随机数是相同的
	rand.Seed(time.Now().UnixNano()) //Unix时间,时间为纳秒,这样生成的随机数每次都不同

	for i := 1; i < 5; i++ {
		//fmt.Println("rand=", rand.Int())    //产生的是大数

		//返回一个取值范围在[0,n)的伪随机int值,如果n<=0会panic
		fmt.Println("rand=", rand.Intn(100)) //产生的是100以内的数
	}

}
运行结果:

                    

 

 

//冒泡排序

package main

import (
	"fmt"
	"math/rand"
	"time"
)

func main() {
	rand.Seed(time.Now().UnixNano())

	var a [10]int
	for i := 0; i < len(a); i++ {
		a[i] = rand.Intn(100)
	}
	fmt.Println("原数组为:", a)
	//冒泡排序
	for i := 0; i < len(a); i++ {
		for j := 0; j < len(a)-i-1; j++ {
			if a[j] > a[j+1] {
				a[j], a[j+1] = a[j+1], a[j]
			}
		}
	}
	fmt.Println("排序后数组为:", a)
	//原数组为: [79 17 10 93 20 41 88 75 50 0],排序后数组为: [0 10 17 20 41 50 75 79 88 93]
}

运行结果: