Suggestion: Operator `in` for slices

Steven Schveighoffer schveiguy at gmail.com
Sun Dec 19 18:36:12 UTC 2021


On 12/19/21 6:45 AM, Ola Fosheim Grøstad wrote:
> Now, if AA was implemented as a hashtable with a constant upper-bound on 
> the linked lists (say 100) then we could say that "in" would be O(1).

D AAs do not use linked lists any more. It uses open addressing. But 
having a bound on how many collisions can happen is ineffective against 
a bad hash function (say, one that always returns 0).

The expectation of the hash table is that the hash function is good. 
Without a good hash function, the complexity goes to crap.

> 
> We could also claim that inserts would be O(1) amortized (ignore 
> rehashing, assuming a distribution that is relatively flat).

That is what we claim (and what hash algorithms in general claim). 
amortized O(1) lookups and inserts.

-Steve


More information about the Digitalmars-d mailing list