And here's another interesting algorithm/structure: Randomized Slide to Front
Andrei Alexandrescu via Digitalmars-d
digitalmars-d at puremagic.com
Mon Nov 30 14:07:36 PST 2015
On 11/30/15 4:58 PM, Steven Schveighoffer wrote:
> On 11/30/15 4:50 PM, Andrei Alexandrescu wrote:
>> On 11/30/15 4:41 PM, H. S. Teoh via Digitalmars-d wrote:
>>> What about when element i is matched, swap it with the (i/2)'th element?
>>
>> Randomization is essential - without it you have thrashing if you search
>> for 2 elements in alternation. -- Andrei
>>
>
> What about selecting a random element in 0..k/2 instead of 0..k-1?
I think complexity would stay the same. Choosing a tighter range puts a
greater weight on the last search than on recent searches.
One thing I like is that I choose 0..k, not 0..k-1, which means it's
possible that the element stays put (no change in position). That
reduces thrashing for the top (most frequently searched) few elements.
andrei
More information about the Digitalmars-d
mailing list