我的array
大小为10^5
。说array[100000]
。
我必须像索引一样将数据插入该数组以进行快速检索。就像array[index] = value
。
即第124个元素[123索引]的数值为23423423,所以我把
array[123] = 23423423;
这样我就可以用索引
123
引用该值。现在的问题是我有一些索引值最多为
10^9
,但是数组大小不能容纳那么大的数字,所以有什么办法可以将所有索引和那里的值放入数组中。我用C语言。
最佳答案
如果仅将新值添加到表中,而从未删除,则可以使用多重证明哈希表。请参阅我的实现:http://olegh.cc.st/src/words.c.txt
实现了“双重哈希”算法(某种形式的多重证明)。
它是为其他目的而写的,在表格中保留文字而不是数字。
但是我认为,您可以根据自己的任务轻松自定义此代码。