Производительность, вероятно, будет лучше для первой функции, поскольку доступ к данным упорядочен последовательно (или в основном последовательно) в памяти. Это происходит быстрее, потому что чтение в одном месте памяти приведет к смещению соседних мест памяти в кэш, поэтому, когда они будут прочитаны, они будут прочитаны намного быстрее, чем если бы они не были в кеше. _ Причина, по которой все должны знать об этом, заключается в том, что разница в производительности может быть абсолютно драматичной. Около 5 лет назад я работал над оптимизацией производительности проекта, который имел код, как во второй функции. Я смог увеличить скорость некоторых циклов, как и в 10 раз, при программировании на C путем последовательного доступа к памяти.
эффективный с точки зрения чего? – cdeszaq
Кроме того, на каком языке? – cdeszaq
С точки зрения времени – CommonMan