I don't know if this counts, but the 2nd is 20% faster than Joe's alternate (x at 1e6 not 1e7)
ts' (/:~ [ /:) x' 110.779/sec 9.43923MB ts' (/:~ ; /:) x' 77.8271/sec 9.43962MB ----- Original Message ----- From: Joe Bogner <joebog...@gmail.com> To: programm...@jsoftware.com Cc: Sent: Wednesday, March 5, 2014 2:38:54 PM Subject: Re: [Jprogramming] a good bar bet! Sorting and grading separately seems faster timer=: 6!:2 x=:(1e7 $ 26?26) { 'abcdefghijklmnopqrstuvwxyz' NB. incumbent timer 's=: x{~g=: /:x' 0.0914002 NB. alternate timer 'S=: /:~x[G=: /:x' 0.0668677 s-:S 1 G-:g 1 I am speculating that sorting does it in place? which is faster than the selection from the grade On Wed, Mar 5, 2014 at 2:02 PM, Raul Miller <rauldmil...@gmail.com> wrote: > Hmm... > > G=:a.i.S=:/:~x > is faster. > > But while s-:S, g and G are different. > > So I'm drawing a blank here, on how to make the grade. > > Thanks, > > -- > Raul > > > > On Wed, Mar 5, 2014 at 1:52 PM, Roger Hui <rogerhui.can...@gmail.com> wrote: > >> Suppose x is a long vector of characters and you need both its sort and its >> grade. Can you do it faster than s=: x{~g=: /:x ? >> >> Posed this way, the answer is of course yes. But how, and why is it >> faster? >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm >> > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm