PDL is about as fast as C for number crunching, but then again, it is a big module to load. If you want the fastest speed possible, you should probably take the quickselect.c program discussed on fastest median possible and put it into an Inline::C routine.