Professional Documents
Culture Documents
L1 1
L1 1
• Удовлетворени ли са условията:
• T(n) = 3 или 1
• S(n) = 5 или 2
Асимптотична сложност - горна граница
• 𝑂 𝑔 𝑛 = {𝑓(𝑛)|∃𝑐 > 0, ∃𝑛0 ∈ ℕ ∀𝑛 ≥ 𝑛0 ∶ 0 ≤ 𝑓(𝑛) ≤ 𝑐𝑔(𝑛)}
• 𝑂 𝑔 𝑛 e множеството от функции 𝑓, за които съществува константа c
(c>0), такава че 𝑓(𝑛) ≤ 𝑐𝑔(𝑛), за всички достатъчно големи стойности
на 𝑛 , т.е. съществува константа 𝑛0 , за която горното неравенство е
изпълнено за всяко 𝑛 > 𝑛0 .
• 𝑂 𝑔 определя множеството на всички функции, които асимптотично
нарастват не по-бързо от g
• за 𝑓 𝑛 = 3𝑛 + 3: 3𝑛 + 3 ≤ 10𝑛 ⇒ 𝑂(𝑛)
• за 𝑓 𝑛 = 3𝑛 + 3: 3𝑛 + 3 ≤ 7𝑛 ⇒ 𝑂(𝑛)
• за 𝑓 𝑛 = 3𝑛 + 3: 3𝑛 + 3 ≤ 10𝑛2 ⇒ 𝑂(𝑛2 )
• ако 1 < log 𝑛 < 𝑛 < 𝑛 < nlog n < 𝑛2 < 𝑛3 < 2𝑛 < 3𝑛 < 𝑛𝑛
• за 𝑓 𝑛 → 𝑔 𝑛 = 𝑛 < nlog n < 𝑛2 < 𝑛3 < 2𝑛 < 3𝑛 < 𝑛𝑛
Асимптотична сложност – долна граница
• за 𝑓 𝑛 = 3𝑛 + 3: 3𝑛 + 3 ≥ 𝑛 ⇒ Ω(𝑛)
• за 𝑓 𝑛 = 3𝑛 + 3: 3𝑛 + 3 ≥ 1 ⇒ Ω 1
• ако 1 < log 𝑛 < 𝑛 < 𝑛 < nlog n < 𝑛2 < 𝑛3 < 2𝑛 < 3𝑛 < 𝑛𝑛
• за 𝑓 𝑛 → 𝑔 𝑛 = 1 < log 𝑛 < 𝑛 < 𝑛
Асимптотична сложност – точна граница
• за 𝑓 𝑛 = 3𝑛 + 3 → 𝑛 ≤ 3𝑛 + 3 ≤ 10𝑛 ⇒ Θ (𝑛)
• ако 1 < log 𝑛 < 𝑛 < 𝑛 < nlog n < 𝑛2 < 𝑛3 < 2𝑛 < 3𝑛 < 𝑛𝑛
• за 𝑓 𝑛 → 𝑔 𝑛 = 𝑛
Пр: Swap – константна сложност
Пр: Sum(int[]) – времева сложност
(спрямо всички операции)
Пр: Sum(int[]) – пространствена сложност
Пр: Sum(int[,]) – времева сложност
Пр: Sum(int[,]) – времева сложност
(спрямо всички операции)
Пр: Sum(int[,]) – пространствена сложност
Пр: Sum(int[,]) – пространствена сложност
Пр: Mul(int[,]) – времева сложност
Пр: Mul(int[,]) – времева сложност
Пр: Mul(int[,]) – пространствена сложност
Пр: Mul(int[,]) – пространствена сложност
Пр:
Пр:
i k X
0 0 0
1 0 1
1
2 0 2
1
2
3 0 3
1
2
3
Полезни суми
• σ𝑛𝑖=1 1 = 𝑛
• σ𝑏𝑖=𝑎 1 = 𝑏 − 𝑎 + 1
𝑛
• σ𝑛𝑖=1,𝑖=𝑖+𝑘 1 ≈
𝑘
𝑛 𝑛+1
• σ𝑛𝑖=1 𝑖=
2
𝑛 2 𝑛 𝑛+1 (2𝑛+1)
• σ𝑖=1 𝑖 =
6
Пр:
i p
Нека при 𝑖 = 𝑘: 𝑝 ≤ 𝑛, а при 𝑖 = 𝑘 + 1: 𝑝 > 𝑛
1 1
Тогава блока ще се изпълни 𝑘 пъти:
𝑘
2 1+2 𝑘 𝑘+1
p = 𝑖 = ≤𝑛⇒ 𝑘 2 + 𝑘 ≤ 2𝑛 ⇒
… … 2
𝑖=1
k 1+2+3+…+k
𝑘 ≤ 2𝑛 ⇒
𝑂( 𝑛)
Пр:
Пр:
Търсене на елемент в масив (𝑇𝑚𝑖𝑛 , 𝑇𝑚𝑎𝑥 )
Търсене на елемент в масив (𝑇𝑚𝑖𝑛 , 𝑇𝑚𝑎𝑥 )
• 2, 3, 4, 5, 8, 10
• 𝑇𝑚𝑖𝑛 6 = 1
• 𝑇𝑚𝑎𝑥 6 = 6
Търсене на елемент в масив (𝑇𝑚𝑖𝑛 , 𝑇𝑚𝑎𝑥 )
• A[0],A[1],…,A[n-1]
• 𝑇𝑚𝑖𝑛 𝑛 = 1
• 𝑇𝑚𝑎𝑥 𝑛 = 𝑛
•𝑂 𝑛
Търсене на елемент в масив (𝑇𝑎𝑣 )
Търсене на елемент в масив (𝑇𝑎𝑣 )
• A 𝟎 ,𝐴 1 ,𝐴 2 → 1
• A 0 ,𝑨 𝟏 ,𝐴 2 → 2
• A 0 ,𝐴 1 ,𝑨 𝟐 → 3
6
• 𝑇𝑎𝑣 3 =
3
Търсене на елемент в масив (𝑇𝑎𝑣 )
• 𝑨 𝟎 ,𝐴 1 ,…,𝐴 𝑛 − 1 → 1
• 𝐴 0 ,𝑨 𝟏 ,…,𝐴 𝑛 − 1 → 2
• …
• 𝐴 0 , 𝐴 1 , … , 𝑨[𝒏 − 𝟏] → n
1 𝑛 1 𝑛 𝑛+1 𝑛+1
• 𝑇𝑎𝑣 𝑛 = σ 𝑖 = . =
𝑛 𝑖=1 𝑛 2 2
Максимален елемент в масив (𝑇𝑚𝑖𝑛 , 𝑇𝑚𝑎𝑥 )
Максимален елемент в масив (𝑇𝑚𝑖𝑛 , 𝑇𝑚𝑎𝑥 )
•𝐴 2 <𝐴 1 <𝐴 0 →0
• 𝑇𝑚𝑖𝑛 3 = 0
•𝐴 0 <𝐴 1 <𝐴 2 →2
• 𝑇𝑚𝑎𝑥 3 = 2
Максимален елемент в масив (𝑇𝑚𝑖𝑛 , 𝑇𝑚𝑎𝑥 )
•𝑂 𝑛
Максимален елемент в масив (𝑇𝑎𝑣 )
Максимален елемент в масив (𝑇𝑎𝑣 )
5
• 𝑇𝑎𝑣 3 =
6
Максимален елемент в масив (𝑇𝑎𝑣 )
• 𝑨 𝒏 < 𝐴 0 < 𝐴 1 < ⋯ < 𝐴 𝑛 − 1 → +0
• 𝐴 0 < 𝑨 𝒏 < 𝐴 1 < ⋯ < 𝐴 𝑛 − 1 → +0
• …
• 𝐴 0 < 𝐴 1 < ⋯ < 𝐴 𝑛 − 1 < 𝑨 𝒏 → +1
1
• 𝑇𝑎𝑣 𝑛 = 𝑇ср 𝑛 − 1 +
𝑛
1 1 1
• 𝑇𝑎𝑣 𝑛 = 0 + + + ⋯ + ≈ ln(𝑛)
2 3 𝑛