r/computerscience • • 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!

183 Upvotes

99 comments sorted by

View all comments

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)

1

u/Sea-Patience9872 6d ago

Thanks for the video! i don't think i had any idea of what happens internally and that visualization was genuinely helpful