Я не очень разбираюсь в вычислениях сложности. Можете ли вы помочь оценить сложность следующих псевдокодов?
Алгоритм 1:
Input: V1, V2 and V3 and another vector C// Vectors of size n
Output: response..
V_f = f(V1, V2, 3) // function performs simple multiplication and additions on the vector
for i in range(0,n) // loop over element in the vector
if V_f(i) != C(i)
// sort the V1(i), V2(i) and V3(i) and retrieve the middle value
// if the middle value is in a range of certain values then launch Algorithm 2
// Over the result of Algorithm 2 (using if expressions), print the response
// end and return result
Алгоритм 2
Input: Sorted
Values C{1}, C{2} and C{3} and the vector C
Output: Response:
for i in range (o,n) // loop over the elements
// According to the values of C and C{i}, perform additions (using if expressions)
// end and return result
Операции внутри циклов являются просто сложениями или простые тесты. Кроме того, алгоритм 2 выполняется с помощью алгоритма 1, что означает, что у меня есть al oop внутри al oop (верно?):
for i in range (n)
// operations
// for j in range (n)
// operations
Значит ли это, что временная сложность этого алгоритма составляет O(n^2)
? где n - размер вектора?
Также в качестве общего вопроса, если алгоритм 1 и алгоритм 2 выполняются параллельно, какова общая сложность? это сумма или максимум сложности каждого алгоритма?