Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 将大数放入数组中_C_Arrays_Algorithm - Fatal编程技术网

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也许你能描述一下实际的问题?你为什么需要庞大的阵列?还请描述性能标准