How to use an array to solve the following...

Kay C Lan lan.kc.macmail at gmail.com
Sun Feb 19 21:47:13 EST 2012


Here's the same solution, but with 1000001 records. On my machine, over 3
runs I get, 4924 millisec, 4932 ms, 4914 ms.

I'm sure others will now improve on that.

There are a couple of extra lines to do the timing which you'd remove for
your solution.

on mouseUp
   --create the dummy list
   put 1000000 into tRepeat
   put 10 & tab & 5 & cr after tStore
   put 10 into tLast
   repeat tRepeat times
      put (10 * random(5) + tLast) into tLast
      put tLast & tab & random(30) & cr after tStore
   end repeat

   --do the work here
   set the itemDelimiter to tab
   put the millisec into tStartTime
   put "first" into tLastItem
   repeat for each line tLine in tStore
      put item 1 of tLine into tCheck
      switch
         case (tLastItem = "first")
            --don't do anything
            break
         case (tCheck - tLastItem > 20)
            put tLastItem + 10 & tab & 0 & cr after tStore2
            put tCheck - 10 & tab & 0 & cr after tStore2
            break
         case (tCheck - tLastItem > 10)
            put tCheck - 10 & tab & 0 & cr after tStore2
            break
      end switch
      put tLine & cr after tStore2
      put tCheck into tLastItem
   end repeat
   put the millisec into tEndTime
   put (tEndTime - tStartTime) & "ms" into msg
end mouseUp



More information about the use-livecode mailing list