我正在尝试使用哈希表来解决离散算法问题。 我正在使用Shanks baby步骤巨步算法。 我的哈希表包含大约11,000,000个键和值。 我不断收到内存异常。 有没有什么办法解决这一问题?或者使用不同的数据结构? 我正在使用Visual C#Express 2010和.NET 4.0 Framework
答案 0 :(得分:0)
我觉得这有点作弊,但Wikipedia给出了解决方案
“该算法需要O(m)内存。通过在算法的第一步中选择较小的m,可以使用更少的内存。这样做会增加运行时间,然后是O(n / m)。或者,可以使用Pollard的rho算法进行对数,该算法与婴儿步进巨步算法的运行时间大致相同,但只需要很小的内存要求。“
答案 1 :(得分:0)
尝试定位64位平台。如今,32位可执行文件通常会耗尽虚拟内存空间。