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