【发布时间】:2011-03-19 07:00:31
【问题描述】:
假设我有一个事物列表(数字,这里为了简单起见),并且我有一个函数,我想使用 SortBy 对它们进行排序。 例如,以下按最后一位数字对数字列表进行排序:
SortBy[{301, 201}, Mod[#,10]&]
并注意这些数字中的两个(即所有)如何具有相同的最后一位数字。 因此,我们以哪种顺序返回它们并不重要。 在这种情况下,Mathematica 以相反的顺序返回它们。 我如何确保打破所有关系,以支持项目在原始列表中的排序方式?
(我知道这有点微不足道,但我觉得这不时出现,所以我认为在 StackOverflow 上获取它会很方便。如果没有人击败,我会发布我想出的任何答案作为答案我给它。)
尝试使其更易于搜索:以最小的干扰进行排序、以最少的交换次数进行排序、自定义平局、以昂贵的交换进行排序、稳定的排序。
【问题讨论】:
-
这里要找的东西不是通常叫稳定排序算法吗?见:en.wikipedia.org/wiki/Sorting_algorithm#Stability
标签: list sorting wolfram-mathematica utilities