我正在寻找一种将N个整数映射到[1,N]的有效方法。
N个整数实际上是排序数组A的条目,没有冗余,我的目标是能够简单地访问数组的每个条目的索引。
示例:
对于给定的整数数组A,排序和没有冗余,但是有间隙和可能非常大的数字(你可能有1000个整数,范围从25到10 ^ 6),我需要一种方法来查找每个条目的索引以有效的方式。例如,如果A [15] = 1546,我需要能够做索引(1546)= 15。 我的问题是我需要在Fortran中执行此操作,据我所知,没有真正的哈希表库。
答案 0 :(得分:1)
我认为,您可以使用二进制搜索来解决您的问题。代码很简单。
查看此页[Binary search in array issue using Fortran
使用二进制搜索,您可以获得给定数字的反向索引。