Ah - I see - very good, thanks!  But you also need to employ some logic
at looking at the characters in the string - first the first letter,
then once you get down to a list where they all have the same first
letter, then take the second, and so forth until you only have one item
left - sounds complicated.  

Reason this whole thing got started with me was Grant Skinner's
presentation on AS3 optimization

http://www.gskinner.com/talks/quickNL/

See slides 68 & 69.  Binary way faster than linear searching - but no
examples on implementing it.  I can see how to write this now - but
wonder if it would be worth it if using Dictionary would be faster -
anyone know?


Jason Merrill 

Bank of  America  Global Learning 
Learning & Performance Solutions

Join the Bank of America Flash Platform Community  and visit our
Instructional Technology Design Blog
(note: these are for Bank of America employees only)






-----Original Message-----
From: flashcoders-boun...@chattyfig.figleaf.com
[mailto:flashcoders-boun...@chattyfig.figleaf.com] On Behalf Of Hans
Wichman
Sent: Thursday, May 06, 2010 11:06 AM
To: Flash Coders List
Subject: Re: [Flashcoders] Doing a binary search in AS3?

the most important thing being as Hendrik said that it is sorted, which
in your example it is not.

Say you have:
["apple", "banana", "cherry", "kiwi", "orange", "peach" "pear",
"pineapple", ]

and you are looking for banana:
middle element is orange (or kiwi)
take "apple", "banana", "cherry", "kiwi", middle element is cherry take
"apple", "banana"
middle element is banana yeah a hit

My description is a bit shabby but you get the idea.

Whether it beats a dictionary ... I don't think so, I've only done this
when searching through huge sorted files with random file access, not
with arrays in flash.

regards
Hans

On Thu, May 6, 2010 at 4:44 PM, Henrik Andersson
<he...@henke37.cjb.net>wrote:

> Merrill, Jason wrote:
>
>> I understand what a binary search algorithm is, but am wondering how 
>> that could be implemented on an array in Actionscript (if at all) 
>> without using methods that would defeating the purpose of a binary 
>> search (speed).  Anyone have experience in this area?
>>
>> So for example, if you have a list like this:
>>
>> ["apple", "orange", "banana", "pear", "cherry", "pineapple", "kiwi", 
>> "peach"]
>>
>> Then to do a binary search for say, "pineapple", as I understand 
>> binary searching, you would first split the list in the middle
(between "pear"
>> and "cherry") and determine if "pineapple" was in that list - if not,

>> search the other half and so on until you find "pineapple".
>>
>
> That is wrong, you know that it will be in a certain half due to the 
> list being sorted. There is no need to scan the half for the object, 
> by the list already being sorted, you know that if the object exists,
it's in that half.
> Just compare the middle element, if it is bigger, use the left half, 
> else use the right half.
>
> _______________________________________________
> Flashcoders mailing list
> Flashcoders@chattyfig.figleaf.com
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to