【发布时间】:2015-06-25 15:01:42
【问题描述】:
我有一个 ruby 数组,我想对从索引 i 开始的所有元素进行排序,直到索引 j 到位。不应修改数组的其余部分。我该如何实施?
【问题讨论】:
-
措辞得当的问题。 @CodeGnome,承认吧:你被证明是错的。 :-)
我有一个 ruby 数组,我想对从索引 i 开始的所有元素进行排序,直到索引 j 到位。不应修改数组的其余部分。我该如何实施?
【问题讨论】:
您可以使用a[i, j] = a[i, j].sort! 从索引i 到索引j 进行排序。示例:
a = [8, 7, 5, 4, 3]
a[2..4] = a[2..4].sort!
a # => [8, 7, 3, 4, 5]
【讨论】:
a[2..4] = a[2..4].sort! 会稍微高效一些,因为它只创建一个临时数组。
2..4。第一行不正确,因为a[i, j] = a[i, j].sort 不是从索引i 排序到索引j,而是从索引i 排序,然后是j 的长度。