Golang实现二维数组的排序
一、通常的实现方法
实现sort.Interface接口中的3个方法:Len方法、Less方法以及Swap方法,即可通过调用sort包中的Sort方法实现结构体数组的排序。(二维数组可以类比为结构体数组)其中:
(1)Len方法表示获取该数组的长度,通常返回len方法返回值。
(2)Less方法表示排序比较方法,通常参数为两个索引(整型),返回值为布尔型,类比Java中的Comparator类。
(3)Swap方法表示交换数组中元素,通常参数为两个索引,无返回值,内部交换数组元素值即可。
当某结构体数组全部实现上述方法后,即可通过sort.Sort方法对该数组进行排序,排序顺序取决于Less方法的返回值。
二、对二维数组进行排序
1.通常以实现sort.Interface接口中3个方法的形式实现二维数组的排序是较为繁琐的,可以通过sort.Slice方法快速实现二维数组的排序。
2.sort.Slice方法有两个参数:待排序的二维数组,以及类似上述Less方法的方法(比较器)。如:
//定义二维数组
var intervals = [][]int{{2,3},{1,2},{4,5},{3,4}}
//对该数组以每行第一个元素升序排列的顺序进行排序
sort.Slice(intervals, func(i,j int) bool {
return intervals[i][0] < intervals[j][0]
})
3.使用sort.Slice方法不必实现上述三种方法,使用简便。
本文作者:夜满星河
本文链接:https://www.cnblogs.com/ThXin/p/16293761.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步