我已经搜索了其他类似问题的线程,但我找不到任何适用于我的线程.
如果我有一个具有某个值的变量,并且一个数组具有一个值列表…我可以有效地(时间有效,空间不是约束)找出变量时数组的索引匹配数组中的元素?
我从阅读大量文件中获取变量,并且对每种可能性进行迭代的暴力将意味着数百万次迭代.作为最后的手段,我愿意这样做,但我宁愿不这样做. 🙂
如果算法依赖于此,我用C编程.我没有选择用C / Python编程.
谢谢!
编辑:我想与数组匹配的值成对出现(x,y).如果数组与x或y匹配,我进一步处理(x,y).但是,如果我必须对它进行排序,那么排序不会改变是至关重要的.
最佳答案 如果空间不是问题,并且您想知道数组中是否包含值,则可以执行以下操作:
>首先,创建一个新数组.让我们调用旧的v [],新的w [],让我通过v []成为你的迭代器.
>现在,使w [v [i]] = 1,其余的w [] = 0.这基本上说“如果x是数组v []中的值,那么w [x] = 1”. (注意:如果全局声明w [],默认情况下,其所有位置都将初始化为0)
>每当您想要检查v []中包含的值时,请检查w [value].如果它等于1,那么答案是肯定的.
如果你对每个数组进行多次检查,这应该可以很好地工作.但请注意,w []可能会变得非常大.
编辑:如果你想保留索引,你可以将w []中的1替换为实际位置 – 只要值不重复,这就行得很好.