fastes way to search an array?

Jerry Jensen jhj at jhj.com
Thu Apr 23 18:48:24 EDT 2015


Actually it may be a bit faster with the two tests if a lot of them match at the beginning. Testing at the beginning (begins with) is a lot faster than spinning through the entire thing (contains), and if the first clause of the OR is satisfied, it won’t execute the second clause. So, maybe. 

I probably wouldn’t write it with the two tests unless I was really in a hurry and proved it to be an advantage with typical test data.

Jerry

> On Apr 23, 2015, at 3:38 PM, Mike Bonner <bonnmike at gmail.com> wrote:
> 
> Did some testing out of curiosity, and WOW this is fast.
> 
> 
> repeat for each key tKey in tArray
>  if tArray[tKey] begins with tSearchString or \
>     tArray[tKey] contains tSearchString then
>    put tKey & return after tResults
>  end if
> end repeat
> 
> The only question I have is.. why search for the same thing twice?  If it
> "contains" it also "begins with" so its a redundant check.  (making it
> faster)  Am I missing something here?
> 
> On Thu, Apr 23, 2015 at 4:01 PM, Geoff Canyon <gcanyon at gmail.com> wrote:
> 
>> On Wed, Apr 22, 2015 at 6:22 PM, Peter Haworth <pete at lcsql.com> wrote:
>> 
>>> Out of interest, I added a test which used combine and filter.  It took
>>> around 3 times longer than the other two tests.
>>> 
>> 
>> Yeah, I didn't expect this to be competitive except under specific
>> circumstances -- if the filter command happens to be suited to the
>> (relatively complex) search performed, for example. I didn't see 3x, more
>> like 1.5x to 2x, but still, iterating is generally the way to go.
>> _______________________________________________
>> 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
>> 
> _______________________________________________
> 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