Was trawling through the google analytics search keywords and noticed somebody was looking for an Enumerable#median method when they came to this site. Got me thinking...
I went googling for solutions and found that some of them were just plain wrong... can't have that.
module Enumerable
def median
# trivial cases
return nil if self.empty?
mid = self.length / 2
if self.length.odd?
(entries.sort)[mid]
else
s = entries.sort
(s[mid-1] + s[mid]).to_f / 2.0
end
end
end
This one isn't the most time-efficient (the sort can get long). I'd need to implement the selection-algorithm for the most optimal solution... but it'll do for a quick fix. I'll post again here if I get around to the better one.
No comments:
Post a Comment