Go+ 排序教程(4.1)

举报
liuzhen007 发表于 2022/02/20 12:49:28 2022/02/20
【摘要】 ​目录Go+ 概述排序整型排序浮点型排序字符串类型排序Go+ 概述Go+ 是一门融合工程开发的 Go、数据科学领域的 Python、编程教学领域的 Scratch,以 Python 之形结合 Go 之心,让工程师处理数据不需要学习新的开发语言,让初学者学习编程、开发作品的门槛更低的编程语言。排序Go+ 支持对数据切片或者数组进行排序,使用的工具库是 sort 包,导入方式如下:import ...

目录


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 签约作者,欢迎关注我分享更多干货!😄

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。