将N个整数映射到[1,N]

时间:2015-09-01 21:08:39

标签: algorithm fortran

我正在寻找一种将N个整数映射到[1,N]的有效方法。

N个整数实际上是排序数组A的条目,没有冗余,我的目标是能够简单地访问数组的每个条目的索引。

示例:

对于给定的整数数组A,排序和没有冗余,但是有间隙和可能非常大的数字(你可能有1000个整数,范围从25到10 ^ 6),我需要一种方法来查找每个条目的索引以有效的方式。例如,如果A [15] = 1546,我需要能够做索引(1546)= 15。 我的问题是我需要在Fortran中执行此操作,据我所知,没有真正的哈希表库。

1 个答案:

答案 0 :(得分:1)

我认为,您可以使用二进制搜索来解决您的问题。代码很简单。

查看此页[Binary search in array issue using Fortran

使用二进制搜索,您可以获得给定数字的反向索引。