Меня недавно спросили «как бы вы реализовали hastable». Я знаю, что алгоритм хеширования важен, так как чем меньше коллизий, тем лучше производительность WRT, но какой алгоритм / структуру данных следует использовать для предоставления амортизированного постоянного времени {O (1)} для вставки / удаления / поиска?