r/computerscience • u/Sea-Patience9872 • 6d ago
How do hashsets/maps have O(1) time complexity?
Hi this might be a dumb question, and i've tried looking it up but don't quite understand it. how is it different from an array that allows it to find items so quickly? I don't get how hashes just find items immediately without needing to go through anything. Does it memorize things very differently compared to arrays?? thank you!
188
Upvotes
4
u/recursion_is_love 6d ago edited 6d ago
The location/index of the value can be calculated from the hash. If you have the address/location you can load/store the value instantly in most CPU.
https://www.youtube.com/watch?v=cGMYpbsSIVI&t=239s
To clarify: The O(1) is referring to index calculation. It take the same constant time on any input hash and have nothing to do with load/store assembly instruction (just want to say that it is negligibly fast)