【发布时间】:2011-09-08 23:54:01
【问题描述】:
我正在尝试为 10 或 16 字节的字符串创建哈希。这些字符串要么是以太网 MAC 地址 + ip 地址(6 + 4 个字节),要么只是一个 ipv6 ip(16 个字节)。
理想情况下,我想保留我的蛋糕并吃掉它。绝对最小的碰撞将是优先事项。散列的长度必须小于 16 字节并且相当快。
知道我应该从哪里开始吗?
【问题讨论】:
-
哈希的目的和优先级是什么?快速插入?快速搜索?删除重复项?
-
我猜是快速插入,使用它们构建指向主机信息的映射。我正在阅读“CHD算法”。到目前为止听起来很有希望。
-
big-O 对于固定的输入大小毫无意义。
-
@Matthew 为什么不直接使用现有的哈希表实现?为什么需要自定义哈希?
-
@Nick,我没有告诉你我使用的是哪种语言。我不知道 C++ 中有一个现有的哈希表实现。我必须去提升吗?矢量或地图只是一个好东西吗? AFAIK 地图将在 O(logn) 找到并使用 BST;所以我更喜欢使用哈希表。