美文网首页
golang排序的Less接口

golang排序的Less接口

作者: 克罗地亚催眠曲 | 来源:发表于2022-05-21 12:11 被阅读0次

    golang中sort包中定义了排序需要的 Less 接口
    函数签名为

    func Less(i, j int) bool
    

    之前不是很明确Less函数该怎么写,使用的时候总是试一下才能知道排序是否正确。今天把该问题明确一下。
    Less函数的注释大意如下

    Less 表明了第 i 个元素是否应该排在第 j 个元素之前。如果Less(i, j) 和 less(j, i)都是False,则认为这两个元素是相等的,Sort函数可能会以任何顺序保存结果,因为Sort函数不保证稳定性,稳定排序应使用StableSort。
    Less 函数必须具有传递性,如果Less(i, j) 和 Less(j, k) 都是True, 则Less(i, k)一定是True。
    同理,如果Less(i, j) 和 Less(j, k) 都是False,则Less(i, k)一定是False。

    相关文章

      网友评论

          本文标题:golang排序的Less接口

          本文链接:https://www.haomeiwen.com/subject/osrcprtx.html