|
@@ -181,8 +181,67 @@ Ordena o vetor e depois faz elemento % p.
|
|
|
|
|
|
###### 6. Qual a diferença de consumo de tempo entre uma busca binária em um vetor com n elementos e uma busca binária em um vetor com $n^2$ elementos?
|
|
|
|
|
|
-A busca binária consome tempo $O(lg \space n)$. Ou seja, $T(n) \leq c * lg \space n$. Queremos descobrir a proporção $\frac{c * lg \space n^2}{c * lg \space n} = lg ()$
|
|
|
+A busca binária consome tempo $O(lg \space n)$. Ou seja, $T(n) \leq c * lg \space n$. Queremos descobrir a proporção $\frac{c * lg \space n^2}{c * lg \space n} = 2 * \frac{c * lg \space n^2}{c * lg \space n} = 2$, ou seja vai levar o dobro do tempo.
|
|
|
|
|
|
+###### 7. Desenhe a árvore de decisão do algoritmo de ordenação por seleção aplicado a um vetor A com 3 elementos distintos.
|
|
|
+
|
|
|
+Temos tres elementos a, b, c. Nessa árvore em primiro está a comparação e segundo o momento que o nó é explorado no algorítmo (direita sim, esquerda não). Acho que é isso...
|
|
|
+
|
|
|
+```
|
|
|
+ A < B
|
|
|
+ / \
|
|
|
+ / \
|
|
|
+ B < C A < C
|
|
|
+ / \ / \
|
|
|
+ A<B<C \ B<A<C \
|
|
|
+ A<C B<C
|
|
|
+ / \ / \
|
|
|
+ A<C<B C<A<B B<C<A C<B<A
|
|
|
+```
|
|
|
+
|
|
|
+###### 8. Considere a árvore de decisão que descreve um algoritmo de ordenação baseado em comparações. Qual a menor profundidade que uma folha pode ter nessa árvore? Justifique detalhadamente.
|
|
|
+
|
|
|
+Vejamos pela figura da imagem acima. A menor profundidade que algo pode ter é qunado o vetor já está ordenado, ou seja todas as comparações retornam verdade e não é preciso se aprofundar. Então, a menor profundidade dessa árvore será $n$.
|
|
|
+
|
|
|
+###### 9. Simule a execução do CountingSort usando como entrada o vetor A[1..11] = (7, 1, 3, 1, 2, 4, 5, 7, 2, 4, 3).
|
|
|
+
|
|
|
+C[1..7] será o nosso vetor auxiliar e B[1..11] também.
|
|
|
+
|
|
|
+```
|
|
|
+B[1..11] = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
|
|
+C[1..7] = (0, 0, 0, 0, 0, 0, 0)
|
|
|
+
|
|
|
+C[1..7] = (0, 0, 0, 0, 0, 0, 1)
|
|
|
+C[1..7] = (1, 0, 0, 0, 0, 0, 1)
|
|
|
+C[1..7] = (1, 0, 1, 0, 0, 0, 1)
|
|
|
+C[1..7] = (2, 0, 1, 0, 0, 0, 1)
|
|
|
+C[1..7] = (2, 1, 1, 0, 0, 0, 1)
|
|
|
+C[1..7] = (2, 1, 1, 1, 0, 0, 1)
|
|
|
+C[1..7] = (2, 1, 1, 1, 1, 0, 1)
|
|
|
+C[1..7] = (2, 1, 1, 1, 1, 0, 2)
|
|
|
+C[1..7] = (2, 2, 1, 1, 1, 0, 2)
|
|
|
+C[1..7] = (2, 2, 1, 2, 1, 0, 2)
|
|
|
+C[1..7] = (2, 2, 2, 2, 1, 0, 2)
|
|
|
+
|
|
|
+C[1..7] = (2, 4, 2, 2, 1, 0, 2)
|
|
|
+C[1..7] = (2, 4, 6, 2, 1, 0, 2)
|
|
|
+C[1..7] = (2, 4, 6, 8, 1, 0, 2)
|
|
|
+C[1..7] = (2, 4, 6, 8, 9, 0, 2)
|
|
|
+C[1..7] = (2, 4, 6, 8, 9, 9, 2)
|
|
|
+C[1..7] = (2, 4, 6, 8, 9, 9, 11)
|
|
|
+
|
|
|
+B[1..11] = (0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0); C[1..7] = (2, 4, 5, 8, 9, 9, 11); i = 11
|
|
|
+B[1..11] = (0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0); C[1..7] = (2, 4, 5, 7, 9, 9, 11); i = 10
|
|
|
+B[1..11] = (0, 0, 0, 2, 0, 3, 0, 4, 0, 0, 0); C[1..7] = (2, 3, 5, 7, 9, 9, 11); i = 9
|
|
|
+B[1..11] = (0, 0, 0, 2, 0, 3, 0, 4, 0, 0, 7); C[1..7] = (2, 3, 5, 7, 9, 9, 10); i = 8
|
|
|
+B[1..11] = (0, 0, 0, 2, 0, 3, 0, 4, 5, 0, 7); C[1..7] = (2, 3, 5, 7, 8, 9, 10); i = 7
|
|
|
+B[1..11] = (0, 0, 0, 2, 0, 3, 4, 4, 5, 0, 7); C[1..7] = (2, 3, 5, 6, 8, 9, 10); i = 6
|
|
|
+B[1..11] = (0, 0, 2, 2, 0, 3, 4, 4, 5, 0, 7); C[1..7] = (2, 2, 5, 6, 8, 9, 10); i = 5
|
|
|
+B[1..11] = (0, 1, 2, 2, 0, 3, 4, 4, 5, 0, 7); C[1..7] = (1, 2, 5, 6, 8, 9, 10); i = 4
|
|
|
+B[1..11] = (0, 1, 2, 2, 3, 3, 4, 4, 5, 0, 7); C[1..7] = (1, 2, 4, 6, 8, 9, 10); i = 3
|
|
|
+B[1..11] = (1, 1, 2, 2, 3, 3, 4, 4, 5, 0, 7); C[1..7] = (0, 2, 4, 6, 8, 9, 10); i = 2
|
|
|
+B[1..11] = (1, 1, 2, 2, 3, 3, 4, 4, 5, 7, 7); C[1..7] = (0, 2, 4, 6, 8, 9, 9); i = 1
|
|
|
+```
|
|
|
|
|
|
|
|
|
|