2015-04-18 6 views
12

У меня есть рубиновый массив, и я хочу отсортировать все элементы, начиная с индекса i, до индекса j, на месте. Остальная часть массива не должна изменяться. Как я могу это реализовать?Сортировочная часть массива в Ruby

+0

Хорошо сформулированный вопрос. @CodeGnome, признайте это: вы оказались неправы. :-) –

ответ

18

Вы можете использовать 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] 
+0

Я собирался прокомментировать, что он не будет делать то, что хочет OP, но это хорошо. – texasbruce

+0

Очень приятно, похоже, сегодня вы на ролике. –

+3

'a [2..4] = a [2..4] .sort!' Будет немного более эффективным, так как он создает только один временный массив. –

Смежные вопросы