Possibili duplicati:
Implementing a matrix, which is more efficient - using an Array of Arrays (2D) or a 1D array?
Performance of 2-dimensional array vs 1-dimensional arrayRappresentando una matrice 2D come un array 1D
Stavo guardando uno dei dinamica molecolare del mio amico basi di codice l'altro giorno e aveva rappresentato un po ' Dati 2D come array 1D. Quindi, piuttosto che dover usare due indici, deve solo tenere traccia di uno, ma un po 'di matematica è fatta per capire in che posizione sarebbe se fosse 2D. Quindi, nel caso di questa matrice 2D:
two_D = [[0, 1, 2],
[3, 4, 5]]
Sarebbe essere rappresentata come:
one_D = [0, 1, 2, 3, 4, 5]
Se aveva bisogno di sapere che cosa era in posizione (1,1) della matrice 2D che avrebbe fatto un po 'di semplice algebra e ottieni 4.
C'è qualche aumento di prestazioni ottenuto usando un array 1D piuttosto che un array 2D. I dati negli array possono essere chiamati milioni di volte durante il calcolo.
Spero che la spiegazione della struttura dati sia chiara ... se non me lo faccia sapere, cercherò di spiegarlo meglio.
Grazie :)
EDIT Il linguaggio è C
L'implementazione di un array 2D dipende dalla lingua. È possibile ottenere alcune buone risposte qui: http://stackoverflow.com/questions/732684/implementing-a-matrix-which-is-more-efficient-using-an-array-of-arrays-2d-or e qui: http://stackoverflow.com/questions/1242705/performance-of-2-dimensional-array-vs-1-dimensional-array –