Doublons possibles:
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 arrayreprésente un tableau 2D comme tableau 1D
Je regardais un code dynamique moléculaire de mon copain bases l'autre jour et il avait représenté quelques-uns Données 2D en tant que tableau 1D. Ainsi, plutôt que d'avoir à utiliser deux index, il doit seulement en garder une trace, mais un peu de calcul est fait pour déterminer dans quelle position il se trouverait s'il était en 2D. Ainsi, dans le cas de ce tableau 2D:
two_D = [[0, 1, 2],
[3, 4, 5]]
Il serait représenté comme:
one_D = [0, 1, 2, 3, 4, 5]
S'il avait besoin de savoir ce qui était en position (1,1) du tableau 2D qu'il ferait une certaine algèbre simple et obtenez 4.
Y at-il une amélioration des performances acquise en utilisant un tableau 1D plutôt qu'un tableau 2D. Les données dans les tableaux peuvent être appelées des millions de fois au cours du calcul.
J'espère que l'explication de la structure des données est claire ... si ce n'est pas faites le moi savoir et je vais essayer de mieux l'expliquer.
Merci :)
EDIT La langue est C
La mise en œuvre d'un tableau 2D dépend de la langue. Vous pouvez obtenir quelques bonnes réponses ici: http://stackoverflow.com/questions/732684/implementing-a-matrix-which-is-more-efficient-using-an-array-of-arrays-2d-ou et ici: http://stackoverflow.com/questions/1242705/performance-of-2-dimensional-array-vs-1-dimensional-array –