Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
fследование= f1 + … + fn
f ветвление = f1 + fthen * p + felse * (1-p), где f1 – сложность вычисления внутренней конструкции
оператора
fцикл=1+3n+телоцикла
Для циклов с зависимыми параметрами можно
воспользоваться формулами суммирования.
fun SumTriangle(A, N) {
sum = 0
for(i := 0; N; 1){
for(j := 0; N - i, 1) {
sum := sum + A[i,j]
(взять sum, взять A[i,j], +, =)
}
}
}
fцикл=1+3n+телоцикла
fun TwoPointers(A, N, M) {
r := 0
s := 0
ansL := 0
ansR := 0
for(L := 0; N; 1) {
while((r < N) and (S + A[r] ≤ M)){
s := A[r]
r := r + 1
} (max N)
if(ansR – AnsL < r – L) {
ansL := L
ansR := r
}
s := s – A[L]
}
}
F2 = 4 + 1 +3n + 5n += 5+ 8n + 16n +9n2 = 5 + 24n + 9n2
= 2 + 2 = 4 = 2*2 = 2*(2-1+1)
= 9 → f2 ∈O (n2)