第 10 节:复合类型 1.4 冒泡排序与数组去重
04 冒泡排序
package main
import "fmt"
func main() {
var arr [10]int = [10]int{9, 1, 5, 6, 8, 2, 10, 7, 4, 3}
//外层执行一次内层执行一周
//外层控制行
for i := 0; i < len(arr)-1; i++ {
//内层控制列
for j := 0; j < len(arr)-1-i; j++ {
//满足条件进行交换 大于号 升序 小于号 降序
if arr[j] < arr[j+1] {
//交换数据
arr[j], arr[j+1] = arr[j+1], arr[j]
}
}
}
fmt.Println(arr)
}
05 随机数做一个数组去重
第一: 随机数使用
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
//1、导入头文件 math/rand time
//2、随机数种子
//3、创建随机数
//创建随机数种子 进行数据混淆
rand.Seed(time.Now().UnixNano())
//伪随机数 使用的1970.1.1.0.0.0
//fmt.Println(rand.Intn(10))//取模10 得到0-9
for i := 0; i < 10; i++ {
fmt.Println(rand.Intn(10))
}
}
第二:数组去重
package main
import (
"math/rand"
"time"
"fmt"
)
func main0601() {
rand.Seed(time.Now().UnixNano())
var arr [10]int
for i := 0; i < len(arr); i++ {
arr[i] = rand.Intn(100)
}
fmt.Println(arr)
for i := 0; i < len(arr)-1; i++ {
for j := 0; j < len(arr)-1-i; j++ {
if arr[j] > arr[j+1] {
arr[j], arr[j+1] = arr[j+1], arr[j]
}
}
}
fmt.Println(arr)
}
func main0602() {
//猜数字 1-100
rand.Seed(time.Now().UnixNano())
num := rand.Intn(100) + 1
value := 0
for {
fmt.Println("请输入一个数字:")
fmt.Scan(&value)
if num > value {
fmt.Println("您输入的数字太小了")
} else if num < value {
fmt.Println("您输入的数组太大了")
} else {
fmt.Println("您猜对了")
break
}
}
}
//数组去重
func main() {
//随机双色球彩票
//红色 1-33 选择6个 不能重复 蓝球 1-16 选择1个 可以和红球重复
rand.Seed(time.Now().UnixNano())
var red [6]int
for i := 0; i < len(red); i++ {
v := rand.Intn(33) + 1
for j := 0; j < i; j++ {
//数据重复
if v == red[j] {
//重新随机
v = rand.Intn(33) + 1
//将j赋值为-1在循环执行到上面是进行++操作后值为0 也就相当于重新比对
j = -1
}
}
//将没有重复的数字添加到数组中
red[i] = v
}
fmt.Println("红球:", red, "蓝球:", rand.Intn(16)+1)
}
本作品采用《CC 协议》,转载必须注明作者和本文链接