Non è così sicuro di come fare questa domanda, ma ho 2 modi (finora) per una matrice di ricercaMatrice seghettata contro un grande array?
Opzione 1 è:
bool[][][] myJaggegArray;
myJaggegArray = new bool[120][][];
for (int i = 0; i < 120; ++i)
{
if ((i & 0x88) == 0)
{
//only 64 will be set
myJaggegArray[i] = new bool[120][];
for (int j = 0; j < 120; ++j)
{
if ((j & 0x88) == 0)
{
//only 64 will be set
myJaggegArray[i][j] = new bool[60];
}
}
}
}
Opzione 2 è:
bool[] myArray;
// [998520]
myArray = new bool[(120 | (120 << 7) | (60 << 14))];
Entrambe le modalità funzionano bene, ma c'è un altro (migliore) modo di fare una ricerca veloce e quale scegliereste se la velocità/prestazioni è ciò che importa?
Questo sarebbe utilizzato in un chessboard implementation (0x88) e soprattutto è
[from][to][dataX]
per opzione 1
[(from | (to << 7) | (dataX << 14))]
per opzione 2
Prenderò qualsiasi opzione sia più facile da usare e da leggere. Puoi sempre ottimizzare in un secondo momento, quando il tuo codice è finito e pensi che dovrebbe essere più veloce di quello che è già. – Nolonar
@Nolonar, infatti, sono al punto ora – Fredou
Vorrei utilizzare un array di grandi dimensioni con un metodo getter con tutti e tre i parametri. Entrambi veloci, leggibili e consentono semplici modifiche future. – Dariusz