Great example in the How To about shuffling with a random sort! Amazing that's even possible. Revolution never fails to bring a sense of wonder to programming.

sort items of myVar numeric \
by random(the number of items in myVar)

But should we count the number of lines or items first?


Here's a test to perform in a button:

on mouseup
  --build a big list
  repeat with i=1 to 10000
    put i & cr after x
  end repeat
  --time the operation
  put the long sec into t
  --sort the original way
  sort lines of x numeric by random(num of lines in x)
  --record the time
  put the long sec - t into a
  put the long sec into t
  --count first
  put num of lines in x into n
  --use the pre-count for the random
  sort lines of x numeric by random(n)
  put the long sec - t into b
  --show the times
  answer a,b
  --show how much difference
  answer a/b
end mouseup

On my computer the second sort is 28 times faster.

Still, the way it's written in the How To is easy to understand for introducing the concept. But for people seriously using it, here you go. I just think this is a beautiful example and I have done my own clumsy shuffling thing many times; you can bet I'm switching to this method!

(And actually, if you really wanted to be perfect, you might improve it by multiplying the number of lines or items by a desired amount for your random number parameter, so you have less chance of two lines having the same random number and (I assume) remaining in the order they originally were in the list.)

From time to time I'm going to see what else is lurking there in How To; I think it's not just for newcomers!!! :-)

Curry
_______________________________________________
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to