Временная сложность алгоритма зависит от того, как вы пишете свои циклы, а также от временной сложности операции, которую вы выполняете в алгоритме.
Если ваш алгоритм состоит из любого количества операций O (1)ваш алгоритм равен O (1).
Если ваш алгоритм состоит из одного или нескольких циклов (не вложенных) от константы до n, сложность времени равна O (n * the_time_complexity_of_the_operation_in_the_loop)
Каждое приведенное ниже утверждение занимает O (1) раз:
int m = 0;
int ele = array2[m];
if(array1[i] == ele)
count++;
m++;
, так что все это O (1).Этот блок находится внутри цикла for, который проходит по вашему массиву, поэтому временная сложность O (n * 1) = O (n), где n - длина массива.
Вот интуитивно понятный способ думать опочему сложность времени стала менее сложной, когда вы сравниваете только элементы с одним и тем же индексом.
Если вы хотите сравнить каждую возможную пару из двух массивов, сколько там пар?Первый элемент первого массива может образовывать пару с n другими элементами из второго массива. Второй элемент первого массива может образовывать пару с n элементами из второго массива и так далее.В общем, для каждого элемента в первом массиве может быть сформировано n пар.Предполагая, что два массива имеют одинаковую длину, общее количество пар равно n ^ 2.Следовательно, необходимо провести много сравнений, что означает, что сложность по времени равна O (n ^ 2).
Если вы хотите сравнить элементы пар по одному и тому же индексу, сколько пар вы можете иметь?n пар, потому что каждый индекс соответствует ровно 1 паре.Поэтому вам нужно сделать n сравнений, что означает, что временная сложность составляет O (n).