Comment on Bell’s Quadratic Quotient Algorithm
Communications of the ACM | , Vol 13(9)
This short note describes a minor inefficiency I noticed in a hash-table algorithm published by James Bell. It got me thinking about hash tables, and I invented what I called the linear quotient algorithm–an algorithm that seems quite obvious in retrospect. While I was running simulations to gather data for a paper on that algorithm, the latest issue of CACM arrived with a paper by Bell and Charles Kaman titled The Linear Quotient Hash Code. I had devised three variants of the algorithm not contained in their article. So, I wrote a paper about those three variants and submitted it to CACM. The editor rejected it, without sending it out for review, saying that it was too small a contribution to merit publication. In the next few years, CACM published two papers by others on the subject, each completely devoted to one of my three variants. (Those papers had been submitted to different editors.) My paper, which was probably a Massachusetts Computer Associates (Compass) technical report, has been lost. (Compass went out of business a few years ago, and I presume that its library was destroyed.) The linear quotient method is probably the most common hash-coding algorithm used today.
Copyright © 1970 by the Association for Computing Machinery, Inc.Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Publications Dept, ACM Inc., fax +1 (212) 869-0481, or permissions@acm.org. The definitive version of this paper can be found at ACM's Digital Library --http://www.acm.org/dl/.