【发布时间】:2017-04-02 02:03:35
【问题描述】:
我一直在使用 sort() 函数,但它混淆了相对顺序。
这就是我的代码的样子。
recipes.sort { $0.skill.value <= $1.skill.value }
Swift API 说:
排序算法不稳定。不稳定的排序可能会改变 比较相等的元素的相对顺序。
如何更改此设置以使相对顺序与以前保持一致?
【问题讨论】:
-
我要评论说这被称为
stable sort- 但我看到你已经引用了使用这个短语的文档。既然您遇到了表达您正在寻找的内容的term of art,那么您为什么要使用不同的、模糊的措辞呢?您正在寻找一种稳定的排序方式。 -
抱歉更改。
-
Swift 在标准库中没有稳定的排序。快速的 Google 搜索显示类似的问题 stackoverflow.com/questions/29322308/swift-stable-sort 和一些解决方案,Swift 功能请求:bugs.swift.org/browse/SR-306 和这篇文章:airspeedvelocity.net/2016/01/10/writing-a-generic-stable-sort。