Skip to content

Instantly share code, notes, and snippets.

@Antti
Created June 13, 2013 12:59

Revisions

  1. Antti created this gist Jun 13, 2013.
    29 changes: 29 additions & 0 deletions quartile.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,29 @@
    def median_split(arr)
    c = arr.size%2
    subset = [arr[0..arr.size/2-1], arr[arr.size/2+c..-1]]
    m = median arr
    subset[0].push m
    subset[1].unshift m
    subset
    end

    def median(arr)
    if arr.size.odd?
    arr[arr.size/2]
    else
    (arr[arr.size/2 -1 ].to_f + arr[arr.size/2].to_f) / 2
    end
    end

    def quartile(arr,n=3)
    arr.sort!
    split = median_split arr
    case n
    when 1
    median split[0]
    when 2
    median arr
    when 3
    median split[1]
    end
    end