Re: integer_median, Lucius, me and that.

new topic     » topic index » view thread      » older message » newer message

[Oops! I think I first sent this message to Michael Nelson instead of
the list:]

I finally found a faster median function (all on my own blink, although
it will only work with integers as it is heavily inspired by good old
bucket sort:

function integer_median(sequence s)
    sequence c
    integer v, k, o, l, t, b

    l = length(s)
    b = s[1]
    t = b
    for n = 1 to l do
        v = s[n]
        if v > t then
            t = v
        elsif v < b then
            b = v
        end if
    end for

    c = repeat(0, t - b + 1)
    o = b - 1
    for n = 1 to l do
        v = s[n] - o
        c[v] += 1
    end for

    k = 1
    v = 0
    while v < l / 2 do
        v += c[k]
        k += 1
    end while

    return k - 1 + o

end function

Sorry Mike, it does not average the middle pairs, but this can be
defended to a certain extent, since it guaranties you'll end up with
a 'real' value which was actually in the distribution.

Lucius is OK, I'm OK and that's OK smile
Tor

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu