function for greatest object in list less than or equal to a value
dunbarx at aol.com
dunbarx at aol.com
Mon Oct 12 13:56:14 EDT 2015
Peter.
All you need is a button:
on mouseUp
put "1,2,4,3,5,6,7,8,9,34," into temp
repeat 16
put temp after temp
end repeat
put the ticks into xx
put "Repeat:" && getMaxLessThan(temp,"5") into repeatResults
put " :Ticks:" && the ticks - xx after repeatResults
put the ticks into xx
put "Sort:" && findItemLessThanIndex(temp,"5") into sortResults
put " :Ticks:" && the ticks - xx after sortResults
answer repeatResults & return & sortResults
end mouseUp
function getMaxLessThan tList,maxVal
repeat for each item i in tList
if i < maxVal then put i & comma after outList
end repeat
return max(item 1 to -1 of outList)
end getMaxLessThan
function findItemLessThanIndex tData,tIndex
put comma & tIndex after tData
sort items of tData numeric
return item itemOffset("5",tData) -1 of tData
end findItemLessThanIndex
"Sort" is consistently faster, up to 50%. Why "up to"? Try it several times. As per the other, newer part of this thread, timing based on such things as "ticks" needs to be run many times to get an accurate "average" reading. Other system processes come into play, as well as gremlins.
Craig
-----Original Message-----
From: Peter TB Brett <peter.brett at livecode.com>
To: How to use LiveCode <use-livecode at lists.runrev.com>
Sent: Mon, Oct 12, 2015 11:23 am
Subject: Re: function for greatest object in list less than or equal to a value
On 12/10/2015 15:24, dunbarx at aol.com wrote:
> I made a test between the
"sort" method and the "repeat for each". For a list of about 100,000 items, sort
finds the max value in 33 ticks, and "repeat" takes 50 ticks.
>
> This seems
logical to me, since lower level operations are used in "sort" as opposed to
"repeat" even though we all know how fast "repeat for each" is.
>
That's
really surprising! Could you please share your test stack so I
can have a
play?
Peter
--
Dr Peter Brett
<peter.brett at livecode.com>
LiveCode Open Source Team
LiveCode on reddit:
https://reddit.com/r/livecode
_______________________________________________
use-livecode
mailing list
use-livecode at lists.runrev.com
Please visit this url to subscribe,
unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
More information about the use-livecode
mailing list