Временная сложность ввода данных

#c

#c

Вопрос:

Есть ли какие-либо затраты на использование 2d-массива в качестве входных данных?

 
for(int i = 0; i < n; i  ) {
   for(int j = 0; j < n; j  ) {
     cin >> a[i][j];
   }
}
  

Это временная сложность O (n ^ 2) или O(1)?

Комментарии:

1. оба цикла выполняются для n итераций, так что это n ^ 2.

2. Временная сложность цикла — это одно, «сложность» фактического ввода — другое. С точки зрения измерения времени сам ввод уменьшит время выполнения кода,

Ответ №1:

Временная сложность зависит от того, как вы ее определяете. В конкурентном программировании есть вероятность, что вам может быть предоставлена готовая 2D-матрица, и вам нужно найти конкретный ответ. Теперь, какой подход вы используете при поиске ответа, определяет вашу временную сложность. Но в этом случае ввод не учитывается при определении временной сложности, поскольку для вашего использования вам нужна 2D-матрица.

Проще говоря, если вам задано n в качестве переменной и вам нужно ввести n * n элементов, сложность равна O (n ^ 2).

Комментарии:

1. Пожалуйста, предоставьте отзыв для ответа. Поддержите и примите это, если это помогло вам