Are hashtables always faster than trees? Though Hashtables have O(1) search complexity but suppose if due to badly designed hash function lot of collisions happen and if we
Are hashtables always faster than trees?
No, not always. This depends on many things, such as the size of the collection, the hash function, and for some hash table implementations - also the number of delete ops.
hash-tables are O(1)
per op on average - but this is not always the case. They might be O(n)
in worst cases.
Some reasons I can think of at the moment to prefer trees:
O(n)
that might occur. [This might be critical for real-time systems]O(1)
is much higher then the tree's - and using a tree might be faster for small collections.However - if the data is huge, latency is not an issue and collisions are unprobable - hash-tables are asymptotically better then using a tree.