Если ваша проблема заключается в эффективности, то вы, вероятно, работаете с очень большими наборами данных.
Самый простой способ сделать итерацию двумерной матрицы намного быстрее - сделать ее одномерной. Если у вас есть X столбцов и Y строк, то вместо доступа к matrix[I][j]
вы можете получить доступ к matrix[i*X+j]
, что избавит вас от разыменования и, возможно, многих промахов кеша. Если возможно, вы можете даже go дальше и обрабатывать матрицу как одномерный массив.
Еще одно решение, позволяющее сэкономить время, - как можно больше избегать условий. Если у вас есть только условия внутри for-l oop, компилятор сможет их значительно оптимизировать.
Не видя больше вашего кода, трудно сказать, есть ли у вас неэффективный код или просто обрабатываете слишком много данных для вашего компьютера, но рекомендации, которые я дал, похоже, соответствуют приведенному вами примеру.
Последнее, что я хочу упомянуть, это то, что float
довольно неточно, и вам лучше использовать double
, если возможно.
Удачи