Вычисление количества операций этого кодаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Вычисление количества операций этого кода

Сообщение Anonymous »

Я пытаюсь понять количество операций приведенного ниже кода.

Код: Выделить всё

void add(matrix a, matrix b, matrix c, int m, int n)
{
for(int i = 0; i < m; i++)
{
count++; //for 'for' i   -------(a)
for(int j = 0; j < n; j++)
{
count++; //for 'for' j  -------(b)
c[i][j] = a[i][j] + b[i][j];
count++;    //for assignment ------(c)
}
count++;    //for last time of 'for' j  ------(d)
}

count++;    //for lastime of 'for' i ---------(e)
}
Переменная count использовалась автором, в котором этот код предназначен для расчета количества операций. Я знаю, что декларативные операторы (int i = 0; int j = 0) имеют счетчик операций, равный 0.

Каждый раз, когда каждый цикл for запускает его, следующие выражения должны выполнять 2 счетчика операций для i < m; i++, когда выполняется только 1 операция i < m.

Код: Выделить всё

for(int i = 0; i < m; i++)

for(int j = 0; j < n; j++)
Но автор рассчитал только один раз (а) и (б). Означает ли это, что i < m и j < n не вычисляются при подсчете операций?

В этой строке счетчик операций должен быть равен 2: 1 операция сложения и 1 операция присваивания.

Код: Выделить всё

 c[i][j] = a[i][j] + b[i][j];
Опять же, он вычислил это только один раз (c).

Из-за вопросов я не знаю, почему он увеличил счетчик в (d) и (e).

Код: Выделить всё

    //Simplified program with counting only
line void add (matrix a, matrix b, matrix c, int m, int n)
{
for(int i = 0; i < m; i++)
{
for(int j = 0; j < m; j++)
count += 2;

count += 2;
}

count++;

}
Спасибо :)

Подробнее здесь: https://stackoverflow.com/questions/273 ... -this-code
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»