Browse Source

Update 'lista4.md'

capella 7 years ago
parent
commit
2c7dad7c27
1 changed files with 14 additions and 0 deletions
  1. 14 0
      lista4.md

+ 14 - 0
lista4.md

@@ -243,5 +243,19 @@ B[1..11] = (1, 1, 2, 2, 3, 3, 4, 4, 5, 0, 7); C[1..7] = (0, 2, 4, 6, 8, 9, 10);
 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
 ```
 
+######  10. Mostre como ordenar n inteiros no intervalo de 0 até $n^2 − 1$ em tempo $O(n)$.
+
+Somente aplicar o CountingSort e pinba. Putra maneira elegante é pensar no binário, se os número vão de 0 até $n^2 − 1$, eles terão no máximo n dígitos, podemos aplicar o BuketSort onde é ordenado dígito a dígito com o CountingSort(que somente pode ser 0 ou 1). Sendo assim teremo $ O(n) * O(2) =  O(n)$.
+
+######   11. Mostre como multiplicar dois números complexos a + bi e c + di usando apenas três multiplicações reais. O seu algoritmo deve receber como entrada os números a, b, c e d e devolver ac − bd (parte real do produto) e ad + bc (parte imaginária).
+
+```
+v1 = d(a - b)
+v2 = a(c - d)
+v3 = b(c + d)
+
+ac − bd = v1 + v2 = d(a - b) + a(c - d) = ad - bd + ac - ad = ac - bd
+ad + bc = v1 + v3 = d(a - b) + b(c + d) = ab - bd + bc + bd = ad + bc
+```