将variables与存储在数组中的值进行高效匹配

我search了类似的问题,但我找不到任何适用于我的其他线程。 如果我有一个具有某个值的variables,并有一个值列表的数组…我可以有效地(时间效率,空间不是一个约束)find数组的索引当variables匹配数组中的元素?

我从读取大量文件中获得variables,而对各种可能性进行的蛮力迭代将意味着数百万次的迭代。 我愿意这样做,作为最后的手段,但我宁愿不。 🙂

我用C编程,如果algorithm依赖于这个。 我没有select使用C ++ / Python进行编程。 谢谢!

编辑:我想与数组匹配的值成对(x,y)。 如果数组与x或y匹配,我将进一步处理(x,y)。 但重要的是,如果我不得不sorting它,sorting不会改变。

如果空间不是问题,并且想要知道数组中是否包含值,则可以这样做:

  • 首先,创建一个新的数组。 我们称之为旧的v[ ] ,新的w[ ] ,让i作为你的迭代器通过v[ ]

  • 现在,令w[v[i]] = 1 ,其余的w[ ] = 0 。 这基本上是说“如果x is a value in array v[ ], then w[x] = 1 ”。 (注意:如果你全局声明了w[ ] ,默认情况下它的所有位置将被初始化为0)

  • 无论何时您想检查v[ ]包含的值,请检查w[value] 。 如果它等于1,那么答案是肯定的。

如果你对每个数组进行多次检查,这应该工作得很好。 但请注意, w[ ]大小可能会相当大。

编辑:如果你想保持索引,你可以用实际位置替换w[ ]的1,只要值不重复,这个效果很好。