我该如何进行稳定排序?

Kar*_*rma 6 ruby sorting stable-sort

如何稳定排序数组?我想要排序的值可能有很多重复,我不确定ruby使用哪种排序算法.我认为插入排序对我来说效果最好.

例:

a = [[:a, 0], [:b, 1], [:c, 0], [:d, 0]]
a.sort_by { |x, y| y }  # => [[:a, 0], [:d, 0], [:c, 0], [:b, 1]]
Run Code Online (Sandbox Code Playgroud)

寻找

[[:a, 0], [:c, 0], [:d, 0], [:b, 1]]
Run Code Online (Sandbox Code Playgroud)

saw*_*awa 5

将你最初想要排序的键和索引放入一个数组中,并以此排序。

a.sort_by.with_index { |(x, y), i| [y, i] }
  # => [[:a, 0], [:c, 0], [:d, 0], [:b, 1]]
Run Code Online (Sandbox Code Playgroud)