Hashing and Hash Functions: Efficient Data Retrieval
Explains the concept of hashing as a technique for mapping arbitrary-sized keys to fixed-size indices, enabling O(1) average-case lookups. Shows Python's built-in hash() function, then builds a hash table class from scratch using chaining (linked lists at each bucket) to resolve collisions. Also covers open addressing as an alternative collision strategy. Finishes with cryptographic hash functions, covering properties like pre-image resistance and the avalanche effect, and demonstrates SHA-256 hashing via Python's hashlib library.