首页 > 解决方案 > sort.Slice 和 sort.SliceStable 有什么区别

问题描述

根据文档https://golang.org/pkg/sort/#Slice, sort.Slice 不能保证是稳定的。是什么使它不稳定,我什么时候会使用 sort.SliceStable 代替?

标签: go

解决方案


来自https://en.wikipedia.org/wiki/Category:Stable_sorts

稳定的排序算法保持具有相同键(即值)的记录的相对顺序。也就是说,如果当有两个记录 R 和 S 具有相同的键并且在原始列表中 R 出现在 S 之前,则排序算法是稳定的,则 R 在排序列表中将出现在 S 之前。


推荐阅读