菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
63
0

第 10 节:复合类型 1.4 冒泡排序与数组去重

原创
05/13 14:22
阅读数 489

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)
}

发表评论

0/200
63 点赞
0 评论
收藏
为你推荐 换一批