
Сомнительно, но:
> в каком случае получение конкретного элемента будет выполнено быстрее?
Время получения одного элемента не должно тебя беспокоить. Важен порядок доступа. В общем случае, быстрее будет тот вариант, в котором случится меньше кеш промахов. Например при такой организации цикла подсчета суммы:
int a1[WIDTH][HEIGHT];
int a2[WIDTH * HEIGHT];
for (x = 0; x < WIDTH; x++)
for (y = 0; y < HEIGHT; y++)
//s1 += a1[x][y];
s2 += a2[y * WIDTH + x];
s2 будет считаться в 5-10 раз дольше чем s1. Если же поменять for-ы местами - ситуация поменяется на противоположную. При правильной (последовательной) организации доступа к данным оба метода будут выполняться приблизительно одинаково и городить огород с "ручной" выборкой по одномерному индексу с по сути двумерного массива особого смысла нет.