golang编程开发使用sort排序示例分析
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇内容介绍了"golang编程开发使用sort排序示例分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有
千家信息网最后更新 2025年01月20日golang编程开发使用sort排序示例分析
本篇内容介绍了"golang编程开发使用sort排序示例分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
sort 操作的对象通常是一个 slice,需要满足三个基本的接口,并且能够使用整数来索引
// A type, typically a collection, that satisfies sort.Interface can be// sorted by the routines in this package. The methods require that the// elements of the collection be enumerated by an integer index. type Interface interface { // Len is the number of elements in the collection. Len() int // Less reports whether the element with // index i should sort before the element with index j. Less(i, j int) bool // Swap swaps the elements with indexes i and j. Swap(i, j int) }
ex-1 对 []int 从小到大排序
package main import ( "fmt" "sort" ) type IntSlice []intfunc (s IntSlice) Len() int { return len(s) }func (s IntSlice) Swap(i, j int){ s[i], s[j] = s[j], s[i] } func (s IntSlice) Less(i, j int) bool { return s[i] < s[j] }func main() { a := []int{4,3,2,1,5,9,8,7,6} sort.Sort(IntSlice(a)) fmt.Println("After sorted: ", a) }
ex-2 使用 sort.Ints 和 sort.Strings
golang 对常见的 []int
和 []string
分别定义了 IntSlice
和 StringSlice
, 实现了各自的排序接口。而 sort.Ints 和 sort.Strings 可以直接对 []int 和 []string 进行排序, 使用起来非常方便
package main import ("fmt" "sort" )func main() {a := []int{3, 5, 4, -1, 9, 11, -14} sort.Ints(a) fmt.Println(a)ss := []string{"surface", "ipad", "mac pro", "mac air", "think pad", "idea pad"} sort.Strings(ss)fmt.Println(ss) sort.Sort(sort.Reverse(sort.StringSlice(ss))) fmt.Printf("After reverse: %v\n", ss) }
ex-3 使用 sort.Reverse 进行逆序排序
如果我们想对一个 sortable object 进行逆序排序,可以自定义一个type。但 sort.Reverse 帮你省掉了这些代码
package main import ( "fmt" "sort" )func main() { a := []int{4,3,2,1,5,9,8,7,6} sort.Sort(sort.Reverse(sort.IntSlice(a)))fmt.Println("After reversed: ", a) }
ex-4 使用 sort.Stable 进行稳定排序
sort.Sort 并不保证排序的稳定性。如果有需要, 可以使用 sort.Stable
package main import ( "fmt" "sort" )type person struct {Name stringAge int}type personSlice []person func (s personSlice) Len() int { return len(s) }func (s personSlice) Swap(i, j int) { s[i], s[j] = s[j], s[i] }func (s personSlice) Less(i, j int) bool { return s[i].Age < s[j].Age } func main() {a := personSlice {{ Name: "AAA",Age: 55,}, {Name: "BBB",Age: 22,}, {Name: "CCC",Age: 0,},{Name: "DDD",Age: 22,},{ Name: "EEE",Age: 11, },}sort.Stable(a)fmt.Println(a) }
"golang编程开发使用sort排序示例分析"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
排序
示例
分析
开发
编程
内容
接口
更多
知识
逆序
j.
实用
从小到大
学有所成
接下来
三个
从小
代码
困境
实际
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
微信小程序梦仙灵服务器内部错误
什么是软件开发框架
民警反诈网络安全宣传
网络安全专业知识考试题库
桓台模具软件开发服务
修改linux数据库编码
莱芜市实验中学网络安全
如何看待软件开发这个行业
h5贷款超市软件开发
网络安全十大漏洞排名
唐山php软件开发招聘
数据库安全性管理办法
网络安全导论电子书
java读取数据库指定行
vba数据库编程技术
rtx数据库修改
模拟网络安全比赛游戏
隔离层次数据库
计算机三级网络技术word
新华三网络安全教育
事业编面试网络安全
自动填充数据库
高防护服务器租用
嵌入式软件开发软件
软件开发项目的特色
网络安全等级五级
网络安全保护标题
广州麟米网络技术有限公司
电脑服务器如何授权另一台用户
视频讲解网络安全