Hashing and indexing: succinct data structures and smoothed analysis