如何稳定地对数组进行排序?我想要排序的值可能有很多重复项,并且我不确定 ruby 使用哪种排序算法。我认为插入排序最适合我。
例子:
a = [[:a, 0], [:b, 1], [:c, 0], [:d, 0]] a.sort_by { |x, y| y } # => [[:a, 0], [:d, 0], [:c, 0], [:b, 1]]
寻找
[[:a, 0], [:c, 0], [:d, 0], [:b, 1]]
将您最初想要排序的键和索引放入一个数组中,然后按该排序。
a.sort_by.with_index { |(x, y), i| [y, i] } # => [[:a, 0], [:c, 0], [:d, 0], [:b, 1]]