Jump to content

Talk:Open addressing

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

For find_slot(key), in the case where slot[i] is occupied for all i's, and the key is not slot[i].key for any i, this functions does not halt.

remove() function

[edit]

The remove() function and it's corresponding note 2 is unnecessarily complex. If there is a way to differentiate a record that has never been used ("unused") and a record that has previously been used but is correctly unoccupied ("deleted"), then remove()'s job is quite simple: if the record exists, mark it as "deleted." find_slot() also would need a small change: it should still stop looking when it reaches an "unused" record, but it should not stop looking if it reaches a "deleted" record (unless the entire table has been probed).

Please correct me if I'm wrong but this is typically how open addressing is taught (I don't have access to the Tenenbaum reference in the article, but here's another reference: Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford. (2001), Introduction to Algorithms, MIT Press, pp. 237-239) Derek M (talk) 03:44, 29 April 2018 (UTC)[reply]

Yes, and I think this article mentioned this in the past. In many cases, some variation of the algorithm you mention is the best choice. Unfortunately, editors' choices are not always the best, and this clearly fell victim to bad decisions. — Preceding unsigned comment added by 87.2.160.34 (talk) 16:31, 31 December 2021 (UTC)[reply]