histogram = { 'the' => 6, 'we' => 7, 'those' => 5, 'have' => 3, 'and' => 6 }
Hash[histogram.sort_by {|word, freq| [-freq, word] }]
# {
# 'we' => 7,
# 'and' => 6,
# 'the' => 6,
# 'those' => 5,
# 'have' => 3
# }
Примечание: предполагается, что вы используете цифры для хранения номеров.В вашей модели данных вы, кажется, используете строки для хранения чисел.Я понятия не имею, почему вы хотели бы сделать это, но если вы do хотите сделать это, вам, очевидно, придется преобразовать их в числа перед сортировкой, а затем обратно в строки.
Кроме того, это предполагает Ruby 1.9.В Ruby 1.8 хэши не упорядочены, поэтому вы не можете преобразовать отсортированный результат обратно в хеш, так как это приведет к потере информации о порядке упорядочения, вам придется хранить ее как массив.