【Go实战基础】数组实战,程序员的基本功

实战需求:

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。

实战思路:

1、先声明两个数组,分别用于存储奇数和偶数,

2、然后遍历待排序的数组,根据是否可以被 2 整除,将数据分发到偶数和奇数数组,

3、最后将偶数数组追加到奇数数组之后作为新的数组返回。

马上安排!

一、工程目录

1
cd go-002/

二、创建 g002.go

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*
 * @Author: 菜鸟实战
 * @FilePath: /go110/go-002/g002.go
 * @Description: 数组实战,程序员的基本功
 */
 
package main
 
import (
    "fmt"
    "runtime"
)
 
// 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,
// 使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
func formatArrayV1(arr []int) []int {
    // 声明两个数组
    var oddArr, evenArr []int
 
    // 区分奇数和偶数
    for _, value := range arr {
        if value%2 == 0 {
            evenArr = append(evenArr, value)
        } else {
            oddArr = append(oddArr, value)
        }
    }
 
    // 拼接
    return append(oddArr, evenArr...)
}
 
// 主函数
func main() {
    // 使用内置函数打印
    println("Hello", "菜鸟实战")
 
    // 待排序数组
    arr := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
 
    fmt.Println("排序前:", arr)
    fmt.Println("排序后:", formatArrayV1(arr))
 
    // 使用包函数打印
    fmt.Printf("版本: %s \n", runtime.Version())
}

三、编译和运行

1、编译运行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 1、生成模块依赖
go mod init g002
 
# 2、编译
go build g002.go 
 
# 3、编译后的目录结构
 
└── go-002
    ├── g002
    ├── g002.go
    └── go.mod
 
# 4、运行
go run g002

2、运行结果

Hello 菜鸟实战
排序前: [0 1 2 3 4 5 6 7 8 9]
排序后: [1 3 5 7 9 0 2 4 6 8]
版本: go1.17.10 

菜鸟实战,持续学习!

posted @   菜鸟实战  阅读(99)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示