Go+ 排序教程(4.1)

Go+ 排序教程(4.1),第1张

目录

Go+ 概述

排序

整型排序

浮点型排序

字符串类型排序


Go+ 概述

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

排序

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

import (
    "sort"
)

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

整型排序

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

import (
    "sort"
)

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

上述代码输出结果:

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

运行结果截图:

 也可以自己尝试:请点我

对切片和数组进行排序后,我们还可以使用 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)

上述代码输出结果:

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

运行结果截图:

也可以自己尝试:请点我

浮点型排序

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)

上述代码输出结果:

排序前: [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]

运行结果截图:

也可以自己尝试:请点我

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

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)

上述代码输出结果:

排序前: [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+ 利用 sort 包可以对字符串类型的数据进行排序,下面是示例代码: 

import (
    "sort"
)

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

上述代码输出结果:

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

运行结果截图:

也可以自己尝试:请点我

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

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)

上述代码输出结果:

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

运行结果截图:

也可以自己尝试:请点我

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/995316.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存