Trovare il minimo, massimo, somma e la media sono banali e può essere fatto facilmente in tempo lineare come mostrato dalla risposta di sepp2k sopra.
Trovare la mediana è meno semplice e l'implementazione ingenua (l'ordinamento e quindi l'elemento centrale) viene eseguita in tempo O (nlogn).
Esistono, tuttavia, algoritmi che trovano la mediana in tempo lineare (come l'algoritmo della mediana di 5). Altri funzionano anche per qualsiasi tipo di statistica degli ordini (ad esempio, si desidera trovare l'elemento 5 ° più piccolo). Il problema con questi è che dovresti implementarli da soli, non conosco nessuna implementazione di Ruby.
O (nlogn) è già abbastanza veloce, quindi se non hai intenzione di lavorare su enormi set di dati (e se hai bisogno di ordinare i tuoi dati comunque), starai bene con quello.
consiglia di modificare la riga total = arr.inject (: +) in totale = arr.inject (0,: +) per evitare di ottenere un valore nullo – user1283153