Skip to content
This repository has been archived by the owner on Dec 13, 2024. It is now read-only.

Commit

Permalink
fix: typos in master theorem
Browse files Browse the repository at this point in the history
Signed-off-by: Jose Storopoli <jose@storopoli.io>
  • Loading branch information
storopoli committed Nov 28, 2024
1 parent 8aca521 commit 790658c
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 149 deletions.
87 changes: 15 additions & 72 deletions slides/slides-pt.typ
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,7 @@ Blank space can be filled with vertical spaces like #v(1fr).
grid(
columns: 2,
gutter: 2mm,
image("images/turing.jpg", width: 60%),
image("images/church.jpg", width: 60%),
image("images/turing.jpg", width: 60%), image("images/church.jpg", width: 60%),
),
caption: "Alan Turing e Alonzo Church",
)<turing-church>
Expand Down Expand Up @@ -3118,69 +3117,14 @@ proposicional pode ser tornada verdadeira* por meio de uma atribuição adequada
[*Método*],
),

[*_Bubble Sort_*],
[$O(n)$],
[$O(n^2)$],
[$O(n^2)$],
[$O(1)$],
[Sim],
[Troca],

[*_Selection Sort_*],
[$O(n^2)$],
[$O(n^2)$],
[$O(n^2)$],
[$O(1)$],
[Não],
[Seleção],

[*_Insertion Sort_*],
[$O(n)$],
[$O(n^2)$],
[$O(n^2)$],
[$O(1)$],
[Sim],
[Inserção],

[*_Merge Sort_*],
[$O(n log n)$],
[$O(n log n)$],
[$O(n log n)$],
[$O(n)$],
[Sim],
[Intercalação],

[*_Quick Sort_*],
[$O(n log n)$],
[$O(n log n)$],
[$O(n^2)$],
[$O(log n)$],
[Não],
[Partição],

[*_Heap Sort_*],
[$O(n log n)$],
[$O(n log n)$],
[$O(n log n)$],
[$O(1)$],
[Não],
[Seleção],

[*_Counting Sort_*],
[$O(n + k)$],
[$O(n + k)$],
[$O(n + k)$],
[$O(n + k)$],
[Sim],
[Contagem],

[*_Radix Sort_*],
[$O(n k)$],
[$O(n k)$],
[$O(n k)$],
[$O(n + k)$],
[Sim],
[Dígito],
[*_Bubble Sort_*], [$O(n)$], [$O(n^2)$], [$O(n^2)$], [$O(1)$], [Sim], [Troca],
[*_Selection Sort_*], [$O(n^2)$], [$O(n^2)$], [$O(n^2)$], [$O(1)$], [Não], [Seleção],
[*_Insertion Sort_*], [$O(n)$], [$O(n^2)$], [$O(n^2)$], [$O(1)$], [Sim], [Inserção],
[*_Merge Sort_*], [$O(n log n)$], [$O(n log n)$], [$O(n log n)$], [$O(n)$], [Sim], [Intercalação],
[*_Quick Sort_*], [$O(n log n)$], [$O(n log n)$], [$O(n^2)$], [$O(log n)$], [Não], [Partição],
[*_Heap Sort_*], [$O(n log n)$], [$O(n log n)$], [$O(n log n)$], [$O(1)$], [Não], [Seleção],
[*_Counting Sort_*], [$O(n + k)$], [$O(n + k)$], [$O(n + k)$], [$O(n + k)$], [Sim], [Contagem],
[*_Radix Sort_*], [$O(n k)$], [$O(n k)$], [$O(n k)$], [$O(n + k)$], [Sim], [Dígito],
)
]
]
Expand Down Expand Up @@ -3522,7 +3466,7 @@ proposicional pode ser tornada verdadeira* por meio de uma atribuição adequada
- A árvore de chamadas tem um nó para cada chamada recursiva.
- Os nós-folha são os casos base da recursão:
subproblemas de tamanho menor que $k$ que não se resolve recursivamente.
- Cada nó realiza uma quanidade de trabalho que corresponde ao tamanho do
- Cada nó realiza uma quantidade de trabalho que corresponde ao tamanho do
subproblema $m$ dada por $p(m)$.
- A quantidade total de trabalho realizado pelo algoritmo completo é
a soma do trabalho realizado por todos os nós na árvore.
Expand All @@ -3541,7 +3485,7 @@ proposicional pode ser tornada verdadeira* por meio de uma atribuição adequada

#align(horizon)[
A complexidade de algoritmos de divisão e conquista pode ser
expressa pela *recorrência de Mestre*:
expressa pela *recorrência Mestre*:

$ T(n) = a T(n / b) + f(n) $

Expand All @@ -3558,14 +3502,13 @@ proposicional pode ser tornada verdadeira* por meio de uma atribuição adequada

A solução dessa recorrência depende da relação entre $f(n)$ e $n^(log_b a)$.

- *Caso 1*: Se $f(n) = O(n^(log_b a - epsilon))$ para algum $epsilon > 0$,
- *Caso 1*: Se $f(n) = O(n^(log_b a - epsilon))$ para alguma constante $epsilon > 0$,
então $T(n) = O(n^(log_b a))$.

- *Caso 2*: Se $f(n) = O(n^(log_b a) log^k n)$ para algum $k >= 0$,
então $T(n) = O(n^(log_b a) log^(k+1) n)$.
- *Caso 2*: Se $f(n) = O(n^(log_b a))$, então $T(n) = O(n^(log_b a) log n)$.

- *Caso 3*: Se $f(n) = O(n^(log_b a + epsilon))$ para algum $epsilon > 0$
e se $a f(n/b) <= c f(n)$ para algum $c < 1$,
- *Caso 3*: Se $f(n) = O(n^(log_b a + epsilon))$ para alguma constante $epsilon > 0$
e se $a f(n/b) <= c f(n)$ para alguma constante $c < 1$,
então $T(n) = O(f(n))$.
]

Expand Down
92 changes: 15 additions & 77 deletions slides/slides.typ
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,7 @@ Blank space can be filled with vertical spaces like #v(1fr).
grid(
columns: 2,
gutter: 2mm,
image("images/turing.jpg", width: 60%),
image("images/church.jpg", width: 60%),
image("images/turing.jpg", width: 60%), image("images/church.jpg", width: 60%),
),
caption: "Alan Turing and Alonzo Church",
)<turing-church>
Expand Down Expand Up @@ -2160,15 +2159,10 @@ subtrees is at most 1.
align: left + horizon,
table.header([*Characteristic*], [*BFS*], [*DFS*]),
[*Data Structure*], [Queue], [Stack],
[*Memory Usage*],
[Higher (stores all neighbors)],
[Lower (stores only current path)],

[*Memory Usage*], [Higher (stores all neighbors)], [Lower (stores only current path)],
[*Shortest Path*], [Yes (in unweighted graphs)], [Not necessarily],
[*Completeness*], [Yes], [Yes],
[*Applications*],
[Shortest path, node levels],
[Cycle detection, topological sorting],
[*Applications*], [Shortest path, node levels], [Cycle detection, topological sorting],
)
]
]
Expand Down Expand Up @@ -3096,69 +3090,14 @@ subtrees is at most 1.
[*Method*],
),

[*Bubble Sort*],
[$O(n)$],
[$O(n^2)$],
[$O(n^2)$],
[$O(1)$],
[Yes],
[Exchange],

[*Selection Sort*],
[$O(n^2)$],
[$O(n^2)$],
[$O(n^2)$],
[$O(1)$],
[No],
[Selection],

[*Insertion Sort*],
[$O(n)$],
[$O(n^2)$],
[$O(n^2)$],
[$O(1)$],
[Yes],
[Insertion],

[*Merge Sort*],
[$O(n log n)$],
[$O(n log n)$],
[$O(n log n)$],
[$O(n)$],
[Yes],
[Merge],

[*Quick Sort*],
[$O(n log n)$],
[$O(n log n)$],
[$O(n^2)$],
[$O(log n)$],
[No],
[Partition],

[*Heap Sort*],
[$O(n log n)$],
[$O(n log n)$],
[$O(n log n)$],
[$O(1)$],
[No],
[Selection],

[*Counting Sort*],
[$O(n + k)$],
[$O(n + k)$],
[$O(n + k)$],
[$O(n + k)$],
[Yes],
[Counting],

[*Radix Sort*],
[$O(n k)$],
[$O(n k)$],
[$O(n k)$],
[$O(n + k)$],
[Yes],
[Digit],
[*Bubble Sort*], [$O(n)$], [$O(n^2)$], [$O(n^2)$], [$O(1)$], [Yes], [Exchange],
[*Selection Sort*], [$O(n^2)$], [$O(n^2)$], [$O(n^2)$], [$O(1)$], [No], [Selection],
[*Insertion Sort*], [$O(n)$], [$O(n^2)$], [$O(n^2)$], [$O(1)$], [Yes], [Insertion],
[*Merge Sort*], [$O(n log n)$], [$O(n log n)$], [$O(n log n)$], [$O(n)$], [Yes], [Merge],
[*Quick Sort*], [$O(n log n)$], [$O(n log n)$], [$O(n^2)$], [$O(log n)$], [No], [Partition],
[*Heap Sort*], [$O(n log n)$], [$O(n log n)$], [$O(n log n)$], [$O(1)$], [No], [Selection],
[*Counting Sort*], [$O(n + k)$], [$O(n + k)$], [$O(n + k)$], [$O(n + k)$], [Yes], [Counting],
[*Radix Sort*], [$O(n k)$], [$O(n k)$], [$O(n k)$], [$O(n + k)$], [Yes], [Digit],
)
]
]
Expand Down Expand Up @@ -3535,14 +3474,13 @@ subtrees is at most 1.

The solution to this recurrence depends on the relationship between $f(n)$ and $n^(log_b a)$.

- *Case 1*: if $f(n) = O(n^(log_b a - epsilon))$ for some $epsilon > 0$,
- *Case 1*: if $f(n) = O(n^(log_b a - epsilon))$ for some constant $epsilon > 0$,
then $T(n) = O(n^(log_b a))$.

- *Case 2*: if $f(n) = O(n^(log_b a) log^k n)$ for some $k >= 0$,
then $T(n) = O(n^(log_b a) log^(k+1) n)$.
- *Case 2*: if $f(n) = O(n^(log_b a))$, then $T(n) = O(n^(log_b a) log n)$.

- *Case 3*: if $f(n) = O(n^(log_b a + epsilon))$ for some $epsilon > 0$
e se $a f(n/b) <= c f(n)$ for some $c < 1$,
- *Case 3*: if $f(n) = O(n^(log_b a + epsilon))$ for some constant $epsilon > 0$
and if $a f(n/b) <= c f(n)$ for some constant $c < 1$,
then $T(n) = O(f(n))$.
]

Expand Down

0 comments on commit 790658c

Please sign in to comment.