2015-02-20 3 views
-1

У меня есть матрица с размером 4 * п, позволяет сказать, что, например, (4 * 3000) Так что это самый быстрый способ для хранения и чтения элементов из матрицыУскорение 2D матрицы чтения

Я попытался два решения, которые дали мне то же самое время приблизительно.

  1. один массив размером 12000 элементов (2D -> 1D), считываемых (I + ширина * J)

  2. 4 массивов с размером 1 * 3000, а затем с помощью (IF ELSE или коммутатор), чтобы решить, какой массив я должен читать

Таким образом, существует ли другое решение для использования. Кроме того, как использовать технику переключения >> для решения проблемы, если ее применимо для этого случая

+0

Разве вы не сказали, что они дают одинаковое время исполнения? Итак, каков ваш вопрос, если вы сказали нам ответ? –

+0

Я спрашиваю, есть ли другое решение для использования. – MROF

+0

Самый быстрый способ - выделить пространство для матрицы в одном распределении, а затем последовательно прочитать значения в нем. Вот и все. Что касается всех остальных мелких деталей (и «техники сдвига»): не беспокойтесь о таких вещах. – MicroVirus

ответ

0

Первая техника должна быть быстрее.

Кроме того, вы можете повысить производительность за счет доступа к элементам внутри цикла в строке (... arr[11] = ...; arr[12] = ...; arr[13] = ...; ...).

+0

Вы можете прочесть их вручную вместо использования (i + width * j) или при вставке значений элементов? – MROF

+0

@MROF Это не важно как. – HolyBlackCat

+0

Как использовать сменную технику >> возможно ли это? А как это сделать ? – MROF

Смежные вопросы