目录

​Go+ 概述​

​排序​

​整型排序​

​浮点型排序​

​字符串类型排序​


Go+ 概述

Go+ 是一门融合工程开发的 Go、数据科学领域的 Python、编程教学领域的 Scratch,以 Python 之形结合 Go 之心,让工程师处理数据不需要学习新的开发语言,让初学者学习编程、开发作品的门槛更低的编程语言。

排序

Go+ 支持对数据切片或者数组进行排序,使用的工具库是 sort 包,导入方式如下:


import (
"sort"
)

#私藏项目实操分享#Go+ 排序教程(4.1)_音视频

接下来,我们进行详细介绍。

整型排序

Go+ 利用 sort 包可以对整型数据进行排序,下面是示例代码: 


import (
"sort"
)

arr := [101, 32, 25, 7, 1, 213, 66, 19]
println("排序前:", arr)
sort.Ints(arr)
println("排序后:", arr)

#私藏项目实操分享#Go+ 排序教程(4.1)_数据_02

上述代码输出结果:

排序前: [101 32 25 7 1 213 66 19] 排序后: [1 7 19 25 32 66 101 213]

运行结果截图:

#私藏项目实操分享#Go+ 排序教程(4.1)_示例代码_03#私藏项目实操分享#Go+ 排序教程(4.1)_示例代码_04

 也可以自己尝试:​​请点我​

对切片和数组进行排序后,我们还可以使用 IntsAreSorted() 方法对切片和数组进行判断,是否已经进行过排序,IntsAreSorted() 方法原型如下:

func IntsAreSorted(a []int) bool

下面是示例代码:


import (
"sort"
)

arr := [101, 32, 25, 7, 1, 213, 66, 19]
println("排序前:", arr)
sort.Ints(arr)
println("排序后:", arr)

res := sort.IntsAreSorted(arr)
println("已经排序:", res)

#私藏项目实操分享#Go+ 排序教程(4.1)_音视频_05

上述代码输出结果:

排序前: [101 32 25 7 1 213 66 19] 排序后: [1 7 19 25 32 66 101 213] 已经排序: true

运行结果截图:

#私藏项目实操分享#Go+ 排序教程(4.1)_数据_06#私藏项目实操分享#Go+ 排序教程(4.1)_数据_07

也可以自己尝试:​​请点我​

浮点型排序

Go+ 利用 sort 包可以对浮点型数据进行排序,下面是示例代码: 


import (
"sort"
)

arr := [10.1, 3.2, 2.5, 0.7, 1.0, 2.13, 6.6, 1.9]
println("排序前:", arr)
sort.Float64s(arr)
println("排序后:", arr)

#私藏项目实操分享#Go+ 排序教程(4.1)_音视频_08

上述代码输出结果:

排序前: [10.1 3.2 2.5 0.7 1 2.13 6.6 1.9] 排序后: [0.7 1 1.9 2.13 2.5 3.2 6.6 10.1]

运行结果截图:

#私藏项目实操分享#Go+ 排序教程(4.1)_数据_09#私藏项目实操分享#Go+ 排序教程(4.1)_数据_10

也可以自己尝试:​​请点我​

同样,浮点型数据也有对应的方法检测切片是否已经递增排序,方法原型如下:

func Float64sAreSorted(a []float64) bool

下面是示例代码:


import (
"sort"
)

arr := [10.1, 3.2, 2.5, 0.7, 1.0, 2.13, 6.6, 1.9]
println("排序前:", arr)
sort.Float64s(arr)
println("排序后:", arr)

res := sort.Float64sAreSorted(arr)
println("已经排序:", res)

#私藏项目实操分享#Go+ 排序教程(4.1)_数据_11

上述代码输出结果:

排序前: [10.1 3.2 2.5 0.7 1 2.13 6.6 1.9] 排序后: [0.7 1 1.9 2.13 2.5 3.2 6.6 10.1] 已经排序: true

运行结果截图:

#私藏项目实操分享#Go+ 排序教程(4.1)_数据_12#私藏项目实操分享#Go+ 排序教程(4.1)_音视频_13

也可以自己尝试:​​请点我​

字符串类型排序

Go+ 利用 sort 包可以对字符串类型的数据进行排序,下面是示例代码: 


import (
"sort"
)

arr := ["a", "hello", "world", "b", "good", "x", "zZ", "A"]
println("排序前:", arr)
sort.Strings(arr)
println("排序后:", arr)

#私藏项目实操分享#Go+ 排序教程(4.1)_数据_14

上述代码输出结果:

排序前: [a hello world b good x zZ A] 排序后: [A a b good hello world x zZ]

运行结果截图:

#私藏项目实操分享#Go+ 排序教程(4.1)_音视频_15#私藏项目实操分享#Go+ 排序教程(4.1)_数据_16

也可以自己尝试:​​请点我​

同样,字符串类型数据也有对应的方法检测切片是否已经递增排序,方法原型如下:

func StringsAreSorted(a []string) bool

下面是示例代码:


import (
"sort"
)

arr := ["a", "hello", "world", "b", "good", "x", "zZ", "A"]
println("排序前:", arr)
sort.Strings(arr)
println("排序后:", arr)

res := sort.StringsAreSorted(arr)
println("已经排序:", res)

#私藏项目实操分享#Go+ 排序教程(4.1)_示例代码_17

上述代码输出结果:

排序前: [a hello world b good x zZ A] 排序后: [A a b good hello world x zZ] 已经排序: true

运行结果截图:

#私藏项目实操分享#Go+ 排序教程(4.1)_数据_18#私藏项目实操分享#Go+ 排序教程(4.1)_音视频_19

也可以自己尝试:​​请点我​


作者简介:😄大家好,我是 Data-Mining(liuzhen007),是一位典型的音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解,😄公众号:玩转音视频。同时也是 CSDN 博客专家、华为云享专家(共创编辑)、InfoQ 签约作者,欢迎关注我分享更多干货!😄