4.9. Sortowanie elementów tablicy według częstości występowania

Problem

Chcemy posortować tablicę w taki sposób, by elementy o wartościach powtarzających się najrzadziej znalazły się blisko jej początku.

Rozwiązanie

Należy zbudować histogram występowania poszczególnych wartości w tablicy, po czym użyć go jako tablicy przeglądowej w połączeniu z metodą sort_by.

W poniższym przykładzie elementy sortowane są według liczby powtórzeń wartości, poczynając od wartości unikalnych lub powtarzających się najrzadziej. Kolejność obiektów o tej samej liczbie powtórzeń wartości wyznaczana jest na podstawie zwykłego porównania tych obiektów.

module Enumerable def sort_by_frequency histogram = inject(Hash.new(0)) { |hash, x| hash[x] += 1; hash} sort_by ...

Get Ruby. Receptury now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.