2015-07-21 122 views
1

我正在使用Maple中的大量数据,我需要知道存储它的最有效的方法。我从列表开始,但很快我就知道自从替换它们以来,效率低下了。现在我使用数组(对于具有固定长度的结构)和表(对于具有可变长度的结构)的混合,但是我的代码实际上比我仅使用列表时慢得多。Maple中的高效数据结构

因此,这里是我的问题:

  • 什么是枫树用于静态长度集数据的最有效的数据结构?对于一个可变长度集?
  • 当在递归过程中使用这些结构作为参数时,我需要注意哪些“陷阱”?如果使用数组或表,每个迭代是否需要复制每个迭代以避免破坏数据?
+0

你是什么意思的效率?添加数据还是选择? – nafas

+0

我有一些数据结构,我只需要初始化,然后引用后修改或不修改(我目前正在使用这些数组),和其他结构,我需要能够添加,删除和修改条目(目前使用这些表格)。对效率的需求来自这样的事实,即这些修改/添加/等都发生在嵌套for循环和递归procs中。 – SonOfHans

+1

我建议您在www.mapleprimes.com上发布您的问题和代码(列表版本和阵列/表格版本)。如果您一次添加一个(或几个)元素,则列表效率不高。数组可以非常有效地拉伸(可变长度)。我不认为他们可以缩小。回答您的问题最重要的因素可能是您是否需要一次一个地将数据添加到结构中。 –

回答

0

我想我现在可以包装这个了。我做了一些性能改进,主要是只做了一些小小的调整,但是通过尽可能多地删除copy命令的实例(我在数组和表格中使用它),我确实实现了很大的改进。事实证明,这是什么导致我的数组/表实现比我的列表实现更慢。但是代码仍然没有按照我需要的那样快速运行,所以我用C#重新编写了它。这可能不是“如何提高Maple效率”的最佳解决方案,但它现在确实运行得更快。