代码之家  ›  专栏  ›  技术社区  ›  David Mohaimin Moin

有哪些算法/优化用于从数组计算元素的条件子集?

  •  0
  • David Mohaimin Moin  · 技术社区  · 14 年前

    我的程序经常处理大量的数据,其中一个特定的组件根据一个条件创建数据的子集。你可以把这看作,有了弦,

    10457038005502
    

    14573
    

    事实上,这个字符串的每个元素都是一个包含大量数据的大型数据结构,整个数据集的大小通常为几GB,由数万个元素组成, 若要确定是否应包含元素(不是“0”),需要处理每个元素。我把它的措辞和上面一样,既要解释清楚,又要把重点放在算法或技术上,而不是我们的具体实现和数据上。

    • 围绕多线程,这 我同意这是一个很好的方法(我们也同意) 我希望 问题本身可以看作 虽然我不知道,这是一个 搜索各种各样的数据。 在这种情况下,一个令人敬畏的回答 1995年的算法X,google “这个学期。”

    我们还应该怎样解决这个问题?

    我正在寻求任何完全不同的方法或算法来解决这类问题的意见。

    • 对于这个问题还有什么其他的方法(快速得到任意子集)?

    • 知道当前的解决方案是计算受限的,是因为每个元素的处理量,或者更确切地说,是因为它需要生成每个元素,以便检查它是否为“0”,您建议使用什么算法或方法来解决这个问题?有没有什么方法可以将程序所做的工作最小化?

    如果它影响特定的库或工具,我们使用C++(不管理);我们使用 Embarcadero C++ Builder 2010 )例如,我们不能使用LINQ,如果没有使用它,我认为它可能是解决这类问题的有用工具/语言特性。但是,我们当然可以实现任何算法解决方案,您通常可以在另一个环境中用较少的工作实现这些解决方案。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Jerry Coffin    14 年前

    假设每个计算可以独立于其他计算进行(即,一个项目的结果不依赖于前一个项目的结果),显然第一步是使用多线程并行执行计算。

        2
  •  1
  •   High Performance Mark    14 年前

    这样做的主要潜在问题可能是确保工作线程之间的良好负载平衡,以及确保主线程不会成为太多的瓶颈。