Resposta da pergunta 2: Θ(n 3 ). Resposta da pergunta 8: 1. 7 O(n). Sim. 22. n log n O(1). Não. 3. n + 7 O(n). Sim. 4. n + 7 O(1). Não.

Documentos relacionados
Busca Binária. Aula 05. Busca em um vetor ordenado. Análise do Busca Binária. Equações com Recorrência

AULA 24. Algoritmos p.856/905

Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

Quantidade de memória necessária

Lista de Exercícios 06 Modularização (Procedimentos e Funções)

Algoritmos Numéricos 2 a edição

Análise e Projeto de Algoritmos

9. imprimir o fatorial do número 10. imprimir o sucessor e o anterior de um número lido 11. Imprimir se um número é primo ou não 12. Imprimir os 100 p

Uma recorrência é uma equação que descreve uma função em termos do seu valor em entradas menores

ANÁLISE DE ALGORITMOS: PARTE 3

FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto a Análise de Algoritmos I Lista de Exercícios 1

Estruturas de Dados 2

Faculdade de Computação

Área que visa determinar a complexidade (custo) de um algoritmo, com isso é possível:

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python

Rodrigo de Barros Paes

1. Faça uma função que recebe por parâmetro o raio de uma esfera e calcula o seu volume.

7. Introdução à Complexidade de Algoritmos

Faculdade de Computação

Técnicas de projeto de algoritmos: Indução

Paradigmas de Projeto de Algoritmos

Exercícios: Vetores e Matrizes

Matemática- 2008/ Se possível, dê exemplos de: (no caso de não ser possível explique porquê)

BCC201 Introdução à Programação ( ) Prof. Reinaldo Silva Fortes. Prática 05 Modularização

Exercícios: Comandos de Repetição

03 Análise de Algoritmos (parte 3) SCC201/501 - Introdução à Ciência de Computação II

Análise de Algoritmos

Organização e Arquitetura de Computadores I

Lista de exercícios sobre contagem de operações Prof. João B. Oliveira

Pesquisa Sequencial e Binária. Introdução à Programação SI2

Linguagens de Programação Aula 13

Noções de algoritmos - Aula 1

Análise de Algoritmos Parte 4

CADERNO DE EXERCÍCIOS ALGORITMOS

Relações de recorrência

EXERCÍCIOS: Estrutura Sequencial, IF (SE), ELSE (Senão)

Exercícios. 1. O que escreva o programa abaixo? Por que? 2. O que escreva o programa abaixo? Por que? algoritmo "foo" var a: inteiro

1ª Lista de Exercícios

Aula 4 Estruturas Condicionais

Circuitos Lógicos Aula 22

Lista de Exercícios. Operações aritméticas simples

Resolva os exercícios utilizando a linguagem de programação C

1 a Lista de Exercícios

Ordenação de Dados (III) HeapSort

NR 1 ( ) NR 9 ( ) NR 6 ( ) NR 3 ( ) NR 4 ( ) NR 7 ( ) NR 5 ( ) NR 10 (210.

BC1424 Algoritmos e Estruturas de Dados I Aula 03: Recursão / Recursividade

Medição. Os conceitos fundamentais da física são as grandezas que usamos para expressar as suas leis. Ex.: massa, comprimento, força, velocidade...

Introdução aos Algoritmos. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Paradigmas de Projeto de Algoritmos

Paradigmas de Projeto de Algoritmos

Pesquisa Sequencial e Binária

1 Complexidade de Algoritmos em Álgebra Linear

Vetores em Haskell. Vetores e Matrizes. Linguagem Haskell. Maria Adriana Vidigal de Lima. Faculdade de Computação - UFU.

BCC202 - Estrutura de Dados I

Lista de Exercícios Estrutura de Repetição

Complexidade Assintótica de Programas Letícia Rodrigues Bueno

Análise de algoritmos

Introdução a Matrizes

Teoria de Conjuntos. Matemática Discreta I. Rodrigo Ribeiro. 6 de janeiro de 2013

MATEMÁTICA 1 MÓDULO 2. Divisibilidade. Professor Matheus Secco

Algoritmos e Estruturas de Dados I. Recursividade. Pedro O.S. Vaz de Melo

Algoritimos e Estruturas de Dados III CIC210

1.1 Etapas na solução de um problema. 1.3 Tipos de erros. 1.4 Aritmética de ponto flutuante.

ANÁLISE DE ALGORITMOS

Álgebra Linear Teoria de Matrizes

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C

3.6 Erro de truncamento da interp. polinomial.

Exercícios sobre algoritmos

ESTRUTURAS DE REPETIÇÃO - PARTE 1

Paradigmas de Projeto de Algoritmos

araribá matemática Quadro de conteúdos e objetivos Quadro de conteúdos e objetivos Unidade 1 Números inteiros adição e subtração

Introdução à Computação

Lista de Exercícios 6: Soluções Funções

REGRAS DE CÁLCULO COM NÚMEROS APROXIMADOS NÃO ACOMPANHADOS DE DESVIOS

ANÁLISE DE ALGORITMOS (INF 1721)

Programa Anual MATEMÁTICA EXTENSIVO

Conceitos: A fração como coeficiente. A fração e a sua representação gráfica. Termos que compõem uma fração. Fração unidade. Fração de um número.

Programação de Computadores II. Cap. 17 Busca

PUC-Rio Departamento de Informática Prof. Marcus Vinicius S. Poggi de Aragão Período: Horário: 4as-feiras de 13 às 16 horas - Sala 520L

Complexidade de Algoritmos

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

Estruturas de Dados 2

Sistemas Lineares - Eliminação de Gauss

Análise de complexidade

Estrutura de Programas e Tipos de Dados Simples

Técnicas de Programação III Análise de Algoritmos (Continuação)

MATRIZ DE REFERÊNCIA-Ensino Médio Componente Curricular: Matemática

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Teoria dos Grafos Aula 6

ESTRUTURA DE DADOS E ALGORITMOS ÁRVORES BALANCEADAS. Cristina Boeres

Funções. Antonio Alfredo Ferreira Loureiro. UFMG/ICEx/DCC MD Funções 1

Aula prática 5. Funções Recursivas

Algoritmos Numéricos 2 a edição

LISTA DE EXERCÍCIOS. 1.2) Escreva um programa para ler o raio de um círculo, calcular e escrever a sua área (Fórmula: πr 2 ).

Métodos de Ordenação Parte 3

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Linguagem C vetores multidimensionais

Universidade Federal de Mato Grosso do Sul Faculdade de Computação Disciplina de Verão: Algoritmos e Programação II

I. Correção de Algoritmos Não-Recursivos

Enunciados das aulas práticas de. Algoritmos e Modelação Matemática

Transcrição:

SSC0503 - Introdução à Ciência de Computação II Respostas da 1 a Lista Professor: Claudio Fabiano Motta Toledo (claudio@icmc.usp.br) Estagiário PAE: Jesimar da Silva Arantes (jesimar.arantes@usp.br) Resposta da pergunta 2: Θ(n 3 ). Resposta da pergunta 8: 1. 7 O(n). Sim. 2. n O(1). Não. 3. n + 7 O(n). Sim. 4. n + 7 O(1). Não. 5. n 2 + 2 O(n). Não. 6. n + 2 O(n 2 ). Sim. 7. 3n 3 + n O(n 3 ). Sim. 8. 2n 4 O(n 4 ). Sim. 9. n 4 O(2n 4 ). Sim. 10. 3n 4 + 2n 3 O(2n 4 ). Não. 11. 2n 4 O(3n 4 + 2n 3 ). Sim. 12. log n O(1). Não. 13. log n + 1 O(log n). Sim. 14. log n + 1 O(n). Sim. 15. log n + 1 O(n 2 ). Sim. 16. log n + 1 O(n 3 ). Sim. 17. n log n O(1). Não. 18. log n + 1 O(log n). Sim. 19. log n + 1 O(n). Sim. 20. log n + 1 O(n 2 ). Sim. 21. log n + 1 O(n 3 ). Sim. 22. n log n O(1). Não.

SSC0503 Respostas da 1 a Lista - Pág. 2 de 5 23. n log n + 1 O(log n). Não. 24. n log n + 1 O(n). Não. 25. n log n + 1 O(n 2 ). Sim. 26. n log n + 1 O(n 3 ). Sim. 27. 2log n O(n log n). Sim. 28. 3n log n O(log n). Não. 29. 2n + n O(2 3 ). Não. 30. n 2 O(2 n ). Sim. 31. 100n 4 O(2 n ). Sim. 32. 100n 4 O(n n ). Sim. 33. 2 n O(100n 4 ). Não. 34. 2 n O(n n ). Sim. 35. n n O(2 n ). Não. 36. n 100 O(n n ). Sim. 37. n(n + 1)/2 O(n 3 ). Sim. 38. n(n + 1)/2 O(n 2 ). Sim. 39. n(n + 1)/2 Θ(n 3 ). Não. 40. n(n + 1)/2 Ω(n). Sim. Resposta da pergunta 12: 1. (n 2 + 1) 10 = Θ(n 20 ) 2. 10n 2 + 7n + 3 = Θ(n) 3. 2n log(n + 2) 2 + (n + 2) 2 log( n) = 2 Θ(n2 log n) 4. 2 n+1 + 3 n 1 = Θ(3 n ) 5. log(n + 37) = Θ(log n)

SSC0503 Respostas da 1 a Lista - Pág. 3 de 5 Resposta da pergunta 18: (i) Soma() (ii) s = 0; (iii) para i = 1 até n faça (iv) s = s + i; (v) fim-para (vi) retorne s; (vii) fim. (i) 55 (ii) a soma. (iii) n vezes. (iv) O(n). (v) Sim. Existe uma formula fechada que faz esse calculo s = n (n + 1)/2. Dessa forma, basta implementar um algoritmo direto baseado nessa equação. Resposta da pergunta 19: (i) MaxMin(vetor v) (ii) max = v[1]; (iii) min = v[1]; (iv) para i = 2 até n faça (v) se v[i] > max então (vi) max = v[i]; (vii) fim-se (viii) se v[i] < min então (ix) min = v[i]; (x) fim-se (xi) fim-para (xii) fim. (i) min = 0. max = 9. (ii) a comparação. (iii) 2 (n 1) vezes. (iv) O(n). (v) Não existe algoritmo mais eficiente. Resposta da pergunta 20:

SSC0503 Respostas da 1 a Lista - Pág. 4 de 5 Algoritmo para converter um número de Celsius para Kelvin. Complexidade: O(1). Entrada: um número. Saída: um número. Algoritmo para converter um número de km/h para m/s. Complexidade: O(1). Entrada: um número. Saída: um número. Algoritmo para converter um número de graus para radianos. Complexidade: O(1). Entrada: um número. Saída: um número. Algoritmo para calcular o IMC de uma pessoa. Complexidade: O(1). Entrada: dois números. Saída: um número. Algoritmo para fazer a troca de dois números. Complexidade: O(1). Entrada: dois números. Saída: dois números. Algoritmo para calcular a média aritmética de dois números. Complexidade: O(2) = O(1). Entrada: dois números. Saída: um número. Algoritmo para calcular a média aritmética de 10 números. Complexidade: O(10) = O(1). Entrada: 10 números. Saída: um número. Algoritmo para calcular a média aritmética de n números. Complexidade: O(n). Entrada: n número. Saída: um número. Algoritmo para calcular a raiz de uma equação do segundo grau. Complexidade: O(1). Entrada: três números. Saída: dois números. Algoritmo para calcular se um ano é bissexto. Complexidade: O(1). Entrada: um número. Saída: um booleano. Algoritmo para calcular se um número é primo. Complexidade: Algumas implementações tem complexidade O(n), outras O(n/2) = O(n) e outras O( n). Entrada: um número. Saída: um booleano. Algoritmo para somar dois vetores de tamanho n. Complexidade: O(n). Entrada: 2 n números. Saída: n números. Algoritmo para subtrair dois vetores de tamanho n. Complexidade: O(n). Entrada: 2 n números. Saída: n números. Algoritmo para calcular o fatorial de n. Complexidade: O(n). Entrada: um número. Saída: um número. Algoritmo para calcular o fibonacci de n. Complexidade: Abordagem iterativa O(n), abordagem recursiva O(φ n ). Entrada: um número. Saída: um número. Algoritmo para verificar se uma palavra é palíndromo ou não. Complexidade: O(n/2) = O(n). Entrada: uma palavras de tamanho n. Saída: um booleano.

SSC0503 Respostas da 1 a Lista - Pág. 5 de 5 Algoritmo para verificar se um vetor de tamanho n está ordenado ou não. Complexidade: O(n). Entrada: n números. Saída: um booleano. Algoritmo para criptografar uma frase pela cifra de césar. Complexidade: O(n). Entrada: uma frase de tamanho n. Saída: uma frase de tamanho n. Algoritmo para soma de duas matrizes. Complexidade: O(n 2 ). Entrada: duas matrizes n n. Saída: uma matriz n n. Algoritmo para subtração de duas matrizes. Complexidade: O(n 2 ). Entrada: duas matrizes n n. Saída: uma matriz n n. Algoritmo para multiplicação de duas matrizes. Complexidade: O(n 3 ). Entrada: duas matrizes n n. Saída: uma matriz n n. Algoritmo para multiplicação de uma matriz por um escalar. Complexidade: O(n 2 ). Entrada: uma matriz n n, um escalar. Saída: uma matriz n n. Algoritmo para transposta de uma matriz. Complexidade: O(n 2 ). Entrada: uma matriz n n. Saída: uma matriz n n.