哈希表的七十年演进:从链表法到Swiss Table的工程智慧
1953年1月,IBM研究员Hans Peter Luhn在一篇内部备忘录中提出了一个看似简单的想法:把数据放进"桶"里以加速查找。他当时的目的是解决一个日益紧迫的问题——科学文献的数量正以指数级增长,人工索引已经跟不上节奏。Luhn可能没想到,这个为了信息检索而设计的"桶"方案,会在七十年后成为计算机科学中最核心的数据结构之一。 ...
1953年1月,IBM研究员Hans Peter Luhn在一篇内部备忘录中提出了一个看似简单的想法:把数据放进"桶"里以加速查找。他当时的目的是解决一个日益紧迫的问题——科学文献的数量正以指数级增长,人工索引已经跟不上节奏。Luhn可能没想到,这个为了信息检索而设计的"桶"方案,会在七十年后成为计算机科学中最核心的数据结构之一。 ...
1961年,MIT的计算机科学家Lester Earnest面临一个看似琐碎的问题:如何让计算机识别打字错误的单词?当时的计算机还是房间大小的庞然大物,输入依靠打孔纸带,一个拼写错误可能意味着重新穿孔整段程序。Earnest开发了一个简单的程序,它能将文档中的每个单词与预定义的词典进行比对——这便是人类历史上第一个拼写检查器的雏形。 ...
1948年,贝尔实验室的克劳德·香农发表了一篇题为《通信的数学理论》的论文。这篇论文定义了一个叫做"熵"的概念:对于任何信息源,存在一个不可逾越的压缩极限。无论你用什么方法,都无法把数据压缩到这个极限以下而不丢失信息。 ...
1956年的某一天,26岁的荷兰计算机科学家Edsger Dijkstra坐在阿姆斯特丹的一家咖啡馆里。他的妻子正在购物,而他在等待。为了打发时间,他开始思考一个问题:如何在一个图中找到两个节点之间的最短路径?20分钟后,他构思出了后来以他名字命名的算法。 ...