sorting - 如何稳定地反向排序 Go 中的一个 slice ?

标签 sorting go reverse stability

我有

4, 5', 6, 5''

并且想要反转稳定排序为

6, 5', 5'', 4

但不是

6, 5'', 5', 4

这个(无效的)代码将不起作用

keys := []int{4, 5', 6, 5''}
sort.Stable(sort.Reverse(sort.Ints(keys)))

它会产生:

6, 5'', 5', 4

这里问题被简化为整数 slice ,但实际上我需要将它应用于结构 slice

type myStruct struct {
    t time.Time
    d time.Duration
}

和基于 t 字段的反向稳定排序。


编辑:经过一些评论后,我明确表示整数 1 是一个无效的示例,以简化问题。

最佳答案

在 slice 类型上实现sort.Interface 接口(interface),这样您就可以选择排序顺序,并对其应用稳定排序。示例:https://play.golang.org/p/TWAtH7asi3

关于sorting - 如何稳定地反向排序 Go 中的一个 slice ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41664250/

相关文章:

sorting - 如何在SAS中不进行排序的情况下删除重复的记录\观察?

c# - 如何按 C# 中的特定字段对对象列表进行排序?

Golang 从变量初始化数组

go - Go 如何将字符串解码为包装的原子 int ?

Python在字符串中反向查找

CSS3 无法反转动画

javascript - Jquery - 使用 data() 按类对 div 进行排序

c++ - 堆排序从介绍到使用 vector 的 C++ 实现中的算法

cookies - Golang中如何查看cookieJar的内容?

python - 如何在 python 中反转 int?