ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Golang实现二维数组的排序

2022-05-20 21:32:42  阅读:178  来源: 互联网

标签:sort Slice 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方法不必实现上述三种方法,使用简便。

标签:sort,Slice,Golang,二维,数组,排序,方法
来源: https://www.cnblogs.com/ThXin/p/16293761.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有