2015-07-21 101 views
1

我正在使用Maple中的大量數據,我需要知道存儲它的最有效的方法。我從列表開始,但很快我就知道自從替換它們以來,效率低下了。現在我使用數組(對於具有固定長度的結構)和表(對於具有可變長度的結構)的混合,但是我的代碼實際上比我僅使用列表時慢得多。Maple中的高效數據結構

因此,這裏是我的問題:

  • 什麼是楓樹用於靜態長度集數據的最有效的數據結構?對於一個可變長度集?
  • 當在遞歸過程中使用這些結構作爲參數時,我需要注意哪些「陷阱」?如果使用數組或表,每個迭代是否需要複製每個迭代以避免破壞數據?
+0

你是什麼意思的效率?添加數據還是選擇? – nafas

+0

我有一些數據結構,我只需要初始化,然後引用後修改或不修改(我目前正在使用這些數組),和其他結構,我需要能夠添加,刪除和修改條目(目前使用這些表格)。對效率的需求來自這樣的事實,即這些修改/添加/等都發生在嵌套for循環和遞歸procs中。 – SonOfHans

+1

我建議您在www.mapleprimes.com上發佈您的問題和代碼(列表版本和陣列/表格版本)。如果您一次添加一個(或幾個)元素,則列表效率不高。數組可以非常有效地拉伸(可變長度)。我不認爲他們可以縮小。回答您的問題最重要的因素可能是您是否需要一次一個地將數據添加到結構中。 –

回答

0

我想我現在可以包裝這個了。我做了一些性能改進,主要是隻做了一些小小的調整,但是通過儘可能多地刪除copy命令的實例(我在數組和表格中使用它),我確實實現了很大的改進。事實證明,這是什麼導致我的數組/表實現比我的列表實現更慢。但是代碼仍然沒有按照我需要的那樣快速運行,所以我用C#重新編寫了它。這可能不是「如何提高Maple效率」的最佳解決方案,但它現在確實運行得更快。