Итак, в худшем случае, который вы описали, где a1
и a2
равны, а a3
не содержит общих чисел с остальными, тогда для каждого n
в a1
вы будете искать a2
и a3
.
Похоже, что время запуска будет пропорционально 2n^2
. То есть это было бы то же самое, что написать:
int jcnt, kcnt;
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < n; ++j)
{
++jcnt;
}
for (int k = 0; k < n; ++k)
{
++kcnt;
}
}
int total = jcnt+kcnt;
Вы обнаружите, что total
будет равно 2n^2
.
Предполагая, конечно, что массивы неупорядочены. Если упорядочены a2
и a3
и вы можете выполнить бинарный поиск, тогда это будет 2n(log n)
.