C 将大数放入数组中
我有一个C 将大数放入数组中,c,arrays,algorithm,C,Arrays,Algorithm,我有一个数组,大小为10^5。说数组[100000] 我必须像索引一样将数据插入该数组,以便快速检索。像数组[index]=value i、 例如,第124个元素[123索引]有一些数字2342323作为值,所以我把 array[123] = 23423423; 这样我就可以用索引123引用该值 现在的问题是,我有一些索引值高达10^9,但数组大小不能容纳那么大的数字,所以有没有办法将所有索引和这些值都放入数组中 我使用C作为我的语言。如果只向表中添加新值,而从不删除,则可以使用多机器人哈
数组
,大小为10^5
。说数组[100000]
我必须像索引一样将数据插入该数组,以便快速检索。像
数组[index]=value
i、 例如,第124个元素[123索引]有一些数字2342323作为值,所以我把
array[123] = 23423423;
这样我就可以用索引123
引用该值
现在的问题是,我有一些索引值高达10^9
,但数组大小不能容纳那么大的数字,所以有没有办法将所有索引和这些值都放入数组中
我使用C作为我的语言。如果只向表中添加新值,而从不删除,则可以使用多机器人哈希表。请参见我的实现: 实现了“双重散列”算法(某种多机器人) 它是为了另一个目的而写的,在表格中保留文字,而不是数字。
但我认为,您可以轻松地为任务自定义此代码。请参阅哈希表。您需要找到“稀疏数组”实现或“映射”实现。这两种方法的语法都与普通数组索引略有不同,但只为实际使用的内容分配存储空间,而不是整个10^9空间。他们将在内部管理基于某种散列的快速索引。听起来像是一个问题,也就是说,也许你正在接近你试图错误地做的任何事情,但是,如果不告诉我们这是什么,我们真的帮不上忙(但散列表可能确实是未问问题的正确答案)。通用无冲突哈希函数不存在。。。要么为固定输入搜索一个完美的散列函数,要么为冲突做好准备。当我懒惰的时候,我经常使用crc32作为基函数。@avinasse也许你能描述一下实际的问题?你为什么需要庞大的阵列?还请描述性能标准