gpt4 book ai didi

c - 变量与存储在数组中的值的高效匹配

转载 作者:IT王子 更新时间:2023-10-29 00:36:30 26 4
gpt4 key购买 nike

我已经搜索了其他有类似问题的线程,但找不到适合我的线程。如果我有一个具有某些值的变量和一个具有值列表的数组...我是否有可能有效地(时间高效,空间不是约束)找出索引 当变量与数组中的元素匹配时数组的?

我正在从一个大文件中读取变量,对每一种可能性进行强力迭代将意味着数百万次迭代。作为最后的手段,我愿意这样做,但我宁愿不这样做。 :)

如果算法依赖于 C,我正在用 C 编程。我没有用 C++/Python 编程的选项。谢谢!

编辑:我想与数组匹配的值成对出现 (x,y)。如果数组与 x 或 y 匹配,我将进一步处理 (x,y)。但重要的是,如果我必须对它进行排序,则顺序不能改变。

最佳答案

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

  • 首先,创建一个新数组。让我们调用旧的 v[ ],新的 w[ ],并让 i 成为您通过 v[ ] 的迭代器.

  • 现在,使 w[v[i]] = 1,而 w[ ] = 0 的其余部分。这基本上是说“如果 x 是数组 v[ ] 中的一个值,则 w[x] = 1”。 (注意:如果你全局声明w[ ],它的所有位置都将默认初始化为0)

  • 每当您想检查 v[ ] 中包含的值时,请改为检查 w[value]。如果等于 1,那么答案是肯定的。

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

编辑:如果您还想保留索引,可以将 w[ ] 中的 1 替换为实际位置 - 只要值不重复,就可以正常工作。

关于c - 变量与存储在数组中的值的高效匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13014846/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com