Sto codificando un algoritmo per la costruzione di un albero di suffissi in Mathematica basato sull'algoritmo di Ukkonen.Il passaggio di una variabile con una grande quantità di dati costa molto tempo e memoria in Mathematica?
La domanda che ho è, passerà la mia intera struttura ad albero (che ho memorizzato in una lista) ad una funzione per cercare, costa al mio programma molta memoria e tempo dato che devo usare alcune delle funzioni più volte nell'algoritmo?
Ad esempio, ho una funzione che cerca i figli di un nodo specifico e utilizzo la funzione Select
per cercare l'intero albero.
getChildren[parentID_] := Select[tree, #[[3]] == parentID &];
Tuttavia ho bisogno di accedere all'albero, quindi è ragionevole passare l'intera struttura ad albero alla funzione? Dal momento che non sembra che ci sia un modo per rendere una variabile globale per l'intero notebook. O c'è un modo alternativo per aggirare questo?
cosa si intende per "non v'è alcun modo per fare una variabile globale per l'intero notebook "? se si definisce 'tree = 5',' tree' è 5 ovunque nel contesto 'Global' (che è il default). è globale per impostazione predefinita, a meno che tu non stia cercando un altro comportamento. – acl