Ruby中的sort
稳定吗?也就是说,对于sort
个并列的元素,它们之间的相对顺序是否保持了原始顺序?例如,假设:
a = [
{id: :a, int: 3},
{id: :b, int: 1},
{id: :c, int: 2},
{id: :d, int: 0},
{id: :e, int: 1},
{id: :f, int: 0},
{id: :g, int: 1},
{id: :h, int: 2},
]
能保证我们总能得到
a.sort_by{|h| h[:int]}
下面
[
{id: :d, int: 0},
{id: :f, int: 0},
{id: :b, int: 1},
{id: :e, int: 1},
{id: :g, int: 1},
{id: :c, int: 2},
{id: :h, int: 2},
{id: :a, int: 3},
]
在:id
值的元素:d
、:f
、:b
、:e
、:g
和:c
、:h
之间的相对顺序没有任何变化?如果是这样的话,文档中的描述在哪里?
这个问题可能与this question有关,也可能与this question无关.