EXERCÍCIOS 1) Defina a função de complexidade dos algoritmos e depois defina qual o melhor. int FibRec(int n) { if (n < 2) return n; eles return (FibRec(n - 1) + FibRec(n – 2)); } int FibIter(int n) { int i = 1, k, F = 0; for (k = 1; k <= n; k++) { F+= i; i=F-i; } return F; } 2) Defina o tempo de execução dos algoritmos considerando: Número de Entradas: 8 Tempo por instrução: 2ms a) linear b) quadráico c) logarímico d) nlgn e) 2n 3) Defina os algoritmos ótimos (se necessário a estrutura de dados também) e suas complexidades assintóticas: a) Unir os vetores A e B gerando o vetor C ordenado. Considere A já ordenado e B não ordenado. O tamanho de A e B (número de elementos em cada um) são iguais. b) Cadastrar e enviar os produtos em uma loja virtual on-line. Nesta loja cadastra-se os produtos e define-se, como ordem de envio, os primeiros cadastrados. Defina a estrutura, a complexidade da inserção e da pesquisa do código do produto a ser enviado. c) Sistema de ordenação de elementos prevendo uma queda do sistema (por falta de energia, por exemplo) em qualquer momento. Caso haja uma falha, seria interessante que o algoritmo já tenha deixado parte do problema resolvido.