Introdução à Ciência da Computação II
|
|
|
- Brenda de Paiva
- 6 Há anos
- Visualizações:
Transcrição
1 Introdução à Ciência da Computação II Análise de Algoritmos: Parte I Prof. Ricardo J. G. B. Campello Este material consiste de adaptações e extensões de slides disponíveis em (Goodrich & Tamassia).
2 Sumário Noções de Análise de Algoritmos Método Experimental e Suas Limitações Contagem de Operações Primitivas Taxa de Crescimento da Contagem Funções Importantes para Mensurar a Contagem Exemplos e Exercícios 2
3 Tempo de Execução Entrada Algoritmo Saída Um algoritmo é um procedimento passo-a-passo para realizar uma dada tarefa em tempo finito O tempo de execução de um algoritmo tipicamente cresce à medida que se aumenta o tamanho de sua entrada O tamanho da entrada é o valor de uma dada grandeza de interesse que reflete o tamanho de uma instância particular de problema a ser solucionado pelo algoritmo Exemplo (tamanho da entrada para um algoritmo de ordenação): tamanho da entrada = no. de elementos a serem ordenados 3
4 Tempo (ms) Método Experimental Escreva um programa que implemente um algoritmo Execute o programa variando a composição e o tamanho da entrada Use alguma funcionalidade da linguagem para obter medidas do tempo. Por exemplo: Função clock() de C (time.h) Método currenttimemillis() de Java (classe System) Esboce um gráfico Tamanho da Entrada 4
5 Limitações do Método Experimental É preciso implementar o algoritmo, muitas vezes complexo Os resultados podem não servir como indicativo do tempo de execução para outras entradas que não foram consideradas nos testes Para comparar dois algoritmos, devem ser utilizadas exatamente as mesmas condições, configurações e ambientes de hardware e software 5
6 Análise Teórica Baseada em uma descrição de alto nível do algoritmo, ao invés de uma dada implementação / linguagem Descrição de alto nível: por ex., pseudo-código Caracteriza o tempo de execução como uma função do tamanho da entrada, n Leva em consideração todas as possíveis entradas Permite avaliar a rapidez de um algoritmo de forma independente de qualquer ambiente de hardware e/ou software 6
7 Pseudo-Código Descrição de alto-nível de um algoritmo Mais estruturada que texto simples Menos detalhada que um programa Notação muito utilizada para descrever algoritmos Esconde detalhes de projeto dos programas Não existe um padrão universal Exemplo: encontrar o valor máximo em um arranjo Algoritmo arraymax(a, n) Entrada: vetor A de n inteiros Saída: elemento máximo de A atualmax A[0] para i 1 até n 1 faça se A[i] atualmax então atualmax A[i] retorne atualmax 7
8 Exemplo de Convenção Controle do fluxo de execução: se então [senão ] enquanto faça repita até que para faça indentação substitui chaves Declaração de rotinas: Algoritmo nome(arg1, arg2, ) Entrada: Saída: Arranjos: A[0]... A[N-1] (N elementos) Chamadas a rotinas: nome(arg1, arg2, ) Retorno de rotinas: retorne expressão ou valor Expressões: Atribuição (mesmo que em Java, C, C++) Teste de igualdade (mesmo que em Java, C, C++) n 2 Sobrescritos e outros formatos matemáticos são utilizados 8
9 Operações Primitivas São ações básicas executadas pelos algoritmos Aparecem no pseudo-código Não dependem da linguagem de programação Considera-se que tenham tempo de execução constante que independe do algoritmo ou do problema em questão Exemplos: Atribuição de valor a uma variável Operação aritmética com dois números Operação lógica Comparação de duas variáveis simples Indexação de célula em um arranjo Seguir um ponteiro ou referência Chamar ou retornar de uma rotina * 9
10 Contagem de Operações Primitivas Inspecionando o pseudo-código pode-se determinar o número máximo de operações primitivas executadas por um algoritmo, em função do tamanho da entrada n Exemplo (algoritmo para encontrar o valor máx. em um arranjo): Algoritmo arraymax(a, n) # operações atualmax A[0] 2 para i 1 até n 1 faça 1 + 2n * se A[i] atualmax então 2(n 1) atualmax A[i] 2(n 1) /* incremento implícito do contador i */ 2(n 1) * retorne atualmax 1 Total: 6n T(n) 8n 2
11 Estimando o Tempo de Execução O algoritmo arraymax executa: 6n operações primitivas no melhor caso 8n 2 operações primitivas no pior caso Suponhamos que: t 1 = tempo gasto pela operação primitiva mais rápida t 2 = tempo gasto pela operação primitiva mais lenta Seja T(n) o tempo de pior caso de arraymax. Então: t 1 (8n 2) T(n) t 2 (8n 2) Portanto, T(n) é limitado por duas funções lineares 11
12 Tempo de Execução Análise de Pior Caso O tempo de execução de um algoritmo tipicamente cresce à medida que se aumenta o tamanho de sua entrada O caso médio algumas vezes é difícil de se determinar depende da composição da entrada demanda teoria de probabilidade Em geral é melhor considerar o tempo de execução do pior caso: Em geral é fácil identificar a pior entrada Garantindo o desempenho do pior caso garante-se o desempenho dos demais melhor caso caso médio pior caso Tamanho da Entrada 12
13 Outro Exemplo Busca Binária O algoritmo compara o valor procurado x com o elemento que está no centro do arranjo V Se forem iguais, o algoritmo pára Se não forem, o algoritmo verifica se x pode estar na metade esquerda ou direita do arranjo, descartando a outra metade A busca prossegue na parte em que x pode ser encontrado... Algoritmo BB(V, n, x) Entrada: vetor V de n inteiros ordenados e valor x a ser encontrado Saída: posição onde x foi encontrado no vetor ou 1 em caso de insucesso i 0 s n 1 enquanto i s faça k (i + s ) / 2; se x = V[k] então retorne k se x V[k] então i k + 1 senão s k 1 retorne ( 1) 13
14 Análise Busca Binária É preciso descobrir quantas vezes o algoritmo repete o laço enquanto no pior caso (que corresponde ao insucesso da busca) Inicialmente, o intervalo de busca em V possui n elementos i 0 e s n 1 Após 1 comparação, restarão n / 2 elementos Após 2 comparações, restarão n / 4 elementos... Após quantas comparações restarão zero elementos (pior caso)? A resposta é log 2 n (teto(log 2 n) ou log 2 n arredondado para cima) 14
15 Análise de Pior Caso da BB Algoritmo BB(V, n, x) Entrada: vetor A de n inteiros ordenados e valor x a ser encontrado Saída: posição onde x foi encontrado ou 1 se não for encontrado i 0 1 s n 1 2 enquanto i s faça log 2 n + 1 k (i + s )/2; 3 log 2 n se x = V[k] então 2 log 2 n retorne k se x V[k] então 2 log 2 n i k + 1 senão s k 1 2 log 2 n retorne ( 1) 1 Total: T(n) = 10 log 2 n + 5 (função logarítmica) 15
16 Sete Funções Importantes Sete funções que aparecem com mais frequência nas análises de algoritmos: Constante: ~ 1 Logarítmica: ~ log b n Linear: ~ n n-log-n: ~ n log b n Quadrática: ~ n 2 Cúbica: ~ n 3 Exponencial: ~ a n T(n) escalas logarítmicas a = b = 2 Usualmente as bases logarítmica e exponencial são tais que a = b = 2 Nesse curso adota-se a convenção de omitir a base logarítmica usual b = 2 n 16
17 Taxa de Crescimento de T(n) Mudar o ambiente de hardware/ software: Afeta T(n) por um fator constante, mas Não altera a taxa de crescimento de T(n). As taxas de crescimento linear e logarítmica de T(n) são propriedades intrínsecas dos algoritmos arraymax e BB, respectivamente. 17
18 Fatores Constantes escalas logarítmicas 10 8 n T(n) n n 18
19 Fatores Constantes escalas logarítmicas T(n) 10 5 n 2 n 2 n 19
20 Fatores Constantes escalas logarítmicas 10 5 n 2 T(n) 10 8 n 10 8 n n 2 n n n 20
21 Termos de Menor Ordem Assim como fatores constantes não afetam a taxa de crescimento, termos de menor ordem também tendem a não mais afetá-la conforme o tamanho da entrada n cresce Exemplo: n n n 2 + n % 10% 1% 0,1% Incremento dado por um termo de menor ordem aumenta em termos absolutos, mas diminui em termos relativos 21
22 Termos de Menor Ordem escalas logarítmicas T(n) n 2 + n n 2 n 22
23 Termos de Menor Ordem escalas logarítmicas T(n) n n n 2 n 23
24 T (n) Em Resumo Assintoticamente, a taxa de crescimento é dominada pelo termo de maior ordem Exemplos: 10 2 n é uma função linear do tamanho da entrada n 10 5 n n é uma f. quadrática de n Não importam : fatores constantes ou termos de menor ordem escalas logarítmicas 1E+26 1E+24 Quadratic 10 5 n n 1E+22 Quadratic 1E+20 Linear n 2 1E+18 Linear 1E+16 1E+14 1E n E+10 1E+8 n 1E+6 1E+4 1E+2 1E+0 1E+0 1E+2 1E+4 1E+6 1E+8 1E+10 n 24
25 T(n) vs. Tempo Cronológico segundos minutos séculos Características Aproximadas do Hardware Número de Instruções executadas por Ciclo do relógio (IPC) 8 Frequência (1 / período do ciclo em min.) 3E+09 No. de Instruções por minuto 24E+09 T(n) n = 20 n = 40 n = 60 n = 80 n 5,3E-08 1,1E-07 1,6E-07 2,1E-07 n log n 2,3E-07 5,7E-07 9,5E-07 1,3E-06 n 2 1,1E-06 4,3E-06 9,6E-06 1,7E-05 n 3 2,1E-05 1,7E-04 5,8E-04 1,4E-03 2 n 2,8E-03 48,9 1,0 1,0E+06 3 n 0,2 5,4E+08 1,9E+18 6,6E+27 25
26 Exercícios Estime o número de operações primitivas da rotina abaixo para cálculo iterativo do fatorial: double FAT(double X){ double I, P; P = 1; for(i=1; I<=X; I++) P=P*I; return P; } - OBS: ignore a chamada da função e declaração das variáveis
27 Exercícios Estime o no. de operações primitivas do famoso algoritmo de ordenação Bubble-Sort (algoritmo da bolha): Algoritmo Bubble(V, n) Entrada: vetor V de n inteiros Saída: vetor V ordenado em ordem crescente para j n 1 até 1 faça para i 0 até j 1 faça se V[i] > V[i+1] então /* troca V[i] com V[i+1] */ aux V[i] V[i] V[i+1] V[i+1] aux retorne V /* retorno de uma referência (ponteiro) para V */ - OBS: faça a estimativa para os números mínimo e máximo, e explique quais tipos de entrada (vetor V) levariam a esses extremos
28 Leitura e Exercícios Slides do Prof. João Luis Rosa Lista de Exercícios Extras Vide Webpage da Disciplina!
29 Bibliografia N. Ziviani, Projeto de Algoritmos, Thomson, 2a. Edição, 2004 M. T. Goodrich & R. Tamassia, Data Structures and Algorithms in Java, John Wiley & Sons, 3rd Edition, 2004 T. H. Cormen et al., Introduction to Algorithms, MIT Press, 2 nd Edition, 2001
01 Análise de Algoritmos (parte 2) SCC201/501 - Introdução à Ciência de Computação II
01 Análise de Algoritmos (parte 2) SCC201/501 - Introdução à Ciência de Computação II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2010/2 Moacir
CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches
CT-234 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches Bibliografia T.H. Cormen, C.E. Leiserson and R.L. Rivest Introduction to algorithms R. Sedgewick
Teoria da Computação Aula 9 Noções de Complexidade
Teoria da Computação Aula 9 Noções de Complexidade Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Análise de um Algoritmo em particular Qual é o custo de usar um dado algoritmo para resolver um
2. Complexidade de Algoritmos
Introdução à Computação II 5952011 2. Complexidade de Algoritmos Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 2.1. Introdução 2.1.1. Revisão de Pseudo-Código 2.1.2.
SCC-201 Introdução à Ciência de Computação II
SCC-201 João Luís Garcia Rosa 1 Ricardo J. G. B. Campello 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br
Pra início de conversa... O que é um algoritmo? Exemplos de algoritmos. Como podemos descrever algoritmos? Como podemos descrever algoritmos?
Pra início de conversa... O que é um algoritmo? Como podemos descrever algoritmos? avaliar algoritmos? Introdução à Análise de Algoritmos Prof. Cláudio E. C. Campelo http://claudiocampelo.com Derivado
Estruturas de Dados. Filas em que a prioridade de remoção não é cronológica. Maior prioridade não é do elemento que ingressou primeiro
Estruturas de Dados Filas de Prioridade Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis em http://ww3.datastructures.net (Goodrich & Tamassia).
Análise de complexidade
Introdução Algoritmo: sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador) Estratégia: especificar (definir propriedades) arquitectura
Algoritmo. Exemplo. Definição. Programação de Computadores Comparando Algoritmos. Alan de Freitas
Algoritmos Programação de Computadores Comparando Algoritmos Um algoritmo é um procedimento de passos para cálculos. Este procedimento é composto de instruções que definem uma função Até o momento, vimos
ESTRUTURAS DE DADOS prof. Alexandre César Muniz de Oliveira
ESTRUTURAS DE DADOS prof. Alexandre César Muniz de Oliveira 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Grafos 7. Complexidade 8. Ordenação 9. Busca Sugestão bibliográfica: ESTRUTURAS DE DADOS
Complexidade de algoritmos Notação Big-O
Complexidade de algoritmos Notação Big-O Prof. Byron Leite Prof. Tiago Massoni Engenharia da Computação Poli - UPE Motivação O projeto de algoritmos é influenciado pelo estudo de seus comportamentos Problema
03 Análise de Algoritmos (parte 3) SCC201/501 - Introdução à Ciência de Computação II
03 Análise de Algoritmos (parte 3) SCC201/501 - Introdução à Ciência de Computação II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2010/2 Moacir
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 01 Complexidade de Algoritmos Edirlei Soares de Lima O que é um algoritmo? Um conjunto de instruções executáveis para resolver um problema (são
Teoria da Computação Aula 8 Noções de Complexidade
Teoria da Computação Aula 8 Noções de Complexidade Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Motivação: Por que estudar algoritmos? Perguntas: - Por que estudar algoritmos se os computadores
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Apresentação da Disciplina Edirlei Soares de Lima Por que Estudar Algoritmos? Razões Práticas e Teóricas: Devemos conhecer um conjunto de algoritmos
Complexidade Assintótica de Programas Letícia Rodrigues Bueno
Complexidade Assintótica de Programas Letícia Rodrigues Bueno Análise de Algoritmos 1. Introdução; Análise de Algoritmos 1. Introdução; 2. Conceitos básicos; Análise de Algoritmos 1. Introdução; 2. Conceitos
COMPLEXIDADE DE ALGORITMOS
COMPLEXIDADE DE ALGORITMOS Algoritmos Seqüência de instruções necessárias para a resolução de um problema bem formulado Permite implementação computacional COMPLEXIDADE DE ALGORITMOS Um algoritmo resolve
1 a Lista de Exercícios
Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Programa de Pós-Graduação em Ciência da Computação Projeto e Análise de Algoritmos - 1 o semestre de 2010 Professor: David Menotti
Análise de Algoritmos Estrutura de Dados II
Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Análise de Algoritmos Estrutura de Dados II COM10078 - Estrutura de Dados II Prof. Marcelo Otone Aguiar [email protected]
Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo
Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo [email protected] www.tiagodemelo.info Observações O conteúdo dessa aula é parcialmente proveniente do Capítulo 11 do livro Fundamentals of
Comportamento assintótico
ANÁLISE DE ALGORITMOS: PARTE 2 Prof. André Backes 2 Na última aula, vimos que o custo para o algoritmo abaixo é dado pela função f(n) = 4n + 3 1 3 Essa é a função de complexidade de tempo Nos dá uma ideia
Algoritmos e Estruturas de Dados II
Algoritmos e Estruturas de Dados II Grafos VI: Grafos Ponderados & Caminhos Mínimos (Bellman-Ford) Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis
Complexidade de Tempo e Espaço
Complexidade de Tempo e Espaço Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Complexidade de Tempo e Espaço junho - 2018 1 / 43 Este material é preparado usando
Análise e Projeto de Algoritmos
Análise e Projeto de Algoritmos Prof. Eduardo Barrére www.ufjf.br/pgcc www.dcc.ufjf.br [email protected] www.barrere.ufjf.br A Disciplina... Lecionada por dois professores: Eduardo Barrére Foco
Teoria da Computação. Aula 3 Comportamento Assintótico 5COP096. Aula 3 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr
5COP096 Teoria da Computação Aula 3 Prof. Dr. Sylvio Barbon Junior 1 Sumário 1) Exercícios Medida de Tempo de Execução. 2) Comportamento Assintótico de Funções. 3) Exercícios sobre Comportamento Assintótico
ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS
1/18 ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS Algoritmos 2/18 Algoritmos Algoritmo - sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador)
7. Introdução à Complexidade de Algoritmos
7. Introdução à Complexidade de Algoritmos Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 7. Introdução à Complexidade de Algoritmos Estruturas de Dados 1 / 1 Análise de Algoritmos
Complexidade de Algoritmos
Complexidade de Algoritmos Prof. Diego Buchinger [email protected] [email protected] Prof. Cristiano Damiani Vasconcellos [email protected] Funções de Complexidade Considere
Análise de algoritmos. Parte I
Análise de algoritmos Parte I 1 Recursos usados por um algoritmo Uma vez que um procedimento está pronto/disponível, é importante determinar os recursos necessários para sua execução Tempo Memória Qual
Análise de Complexidade de Algoritmos. mario alexandre gazziro
Análise de Complexidade de Algoritmos mario alexandre gazziro Definição A complexidade de um algoritmo consiste na quantidade de esforço computacional necessária para sua execução. Esse esforço é expresso
É interessante comparar algoritmos para valores grandes de n. Para valores pequenos de n, mesmo um algoritmo ineficiente não custa muito para ser
É interessante comparar algoritmos para valores grandes de n. Para valores pequenos de n, mesmo um algoritmo ineficiente não custa muito para ser executado 1 Fazendo estimativas e simplificações... O número
Comportamento Assintótico. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io)
Comportamento Assintótico Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Até Agora Falamos de complexidade de algoritmos com base no número de passos Vamos generalizar
01 Análise de Algoritmos (parte 1) SCC201/501 - Introdução à Ciência de Computação II
01 Análise de Algoritmos (parte 1) SCC201/501 - Introdução à Ciência de Computação II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2010/2 Moacir
Classes, Herança e Interfaces
Escola de Artes, Ciências e Humanidades EACH-USP ACH2002 Introdução à Ciência da Computação II Professor: Delano Medeiros Beder revisada pelo professor: Luciano Digiampietri EACH Segundo Semestre de 2011
Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Classes de Comportamento Assintótico Se f é uma função de complexidade para um algoritmo F, então
MCTA028 Programação Estruturada Aula 19 Custos de um algoritmo e funções de complexidade
MCTA028 Programação Estruturada Aula 19 Custos de um algoritmo e funções de complexidade Prof. Jesús P. Mena-Chalco 3Q-2017 1 0 A = n-1... 2 0 A = n-1... - O programa funciona (está correto)? - Como medir/mensurar
COMPLEXIDADE DE ALGORITMOS COMPLEXIDADE DE ALGORITMOS
COMPLEXIDADE DE ALGORITMOS Algoritmos Seqüência de instruções necessárias para a resolução de um prolema em formulado Permite implementação computacional COMPLEXIDADE DE ALGORITMOS Um algoritmo resolve
Aula 1. Teoria da Computação III
Aula 1 Teoria da Computação III Complexidade de Algoritmos Um problema pode ser resolvido através de diversos algoritmos; O fato de um algoritmo resolver um dado problema não significa que seja aceitável
Algoritmos e Estruturas de Dados II
Algoritmos e Estruturas de Dados II Organização Revisão (DFS) Exemplo de Execução (DFS) Grafos V: e Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis
AULA 17. Melhores momentos. Segmento de soma máxima. Segmento de soma máxima. Conclusões. Algumas técnicas
Melhores momentos Segmento de soma máxima Um segmento de um vetor v[0 n 1] é qualquer subvetor da forma v[e d] Problema: Dado um vetor v[0 n 1] de números inteiros, determinar um segmento v[e d] de soma
Teoria da computabilidade Indecidíveis Decidíveis
Bacharelado em Ciência da Computação Disciplina: Algoritmos e Estruturas de Dados I Professor: Mário Luiz Rodrigues Oliveira Teoria da computabilidade Indecidíveis Decidíveis Teoria da complexidade Intratáveis:
Introdução à Ciência da Computação II
Introdução à Ciência da Computação II 2semestre/200 Prof Alneu de Andrade Lopes Apresentação com material gentilmente cedido pelas profas Renata Pontin Mattos Fortes http://wwwicmcuspbr/~renata e Graça
ESTRUTURAS DE DADOS E ALGORITMOS APRESENTAÇÃO DO CURSO E INTRODUÇÃO
ESTRUTURAS DE DADOS E ALGORITMOS APRESENTAÇÃO DO CURSO E INTRODUÇÃO Adalberto Cajueiro ([email protected]) Departamento de Sistemas e Computação Universidade Federal de Campina Grande 1
Introdução à Ciência da Computação II. Recursão. Prof. Ricardo J. G. B. Campello
Introdução à Ciência da Computação II Recursão Prof. Ricardo J. G. B. Campello Agradecimentos Parte dos slides a seguir são adaptações dos originais em Pascal gentilmente cedidos pelo Prof. Rudinei Goularte
FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto a Análise de Algoritmos I Lista de Exercícios 1
FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Projeto a Análise de Algoritmos I Lista de Exercícios 1 Prof. Osvaldo. 1. Descreva alguns problemas associados ao emprego de metodologias
ALGORITMOS E ESTRUTURAS DE DADOS I PROF. EDSON IFARRAGUIRRE MORENO
ALGORITMOS E ESTRUTURAS DE DADOS I PROF. EDSON IFARRAGUIRRE MORENO INFORMAÇÕES Horário: 3CD 6CD Créditos: 4 Carga-horária: 60 horas-aula E-mail: [email protected] Material: http://www.inf.pucrs.br/emoreno
Trabalho: Algoritmos de Busca e Ordenação. 1 Introdução. Prof. Bruno Emerson Gurgel Gomes IFRN - Câmpus Currais Novos. 31 de outubro de 2012
Trabalho: Algoritmos de Busca e Ordenação Prof. Bruno Emerson Gurgel Gomes IFRN - Câmpus Currais Novos 31 de outubro de 2012 1 Introdução Os algoritmos de busca e de ordenação compreendem um conjunto de
ESTRUTURA DE DADOS I AULA I
ESTRUTURA DE DADOS I AULA I PROF. ME. HÉLIO ESPERIDIÃO O que é um dado? Dado pode ser definido como a matéria-prima originalmente obtida de uma ou mais fontes (etapa de coleta). o que é a informação A
Métodos de Ordenação: Selection, Insertion, Bubble, Merge (Sort)
Métodos de Ordenação: Selection, Insertion, Bubble, Merge (Sort) Hebert Coelho e Nádia Félix Ordenação É a operação de rearranjar os dados em uma determinada ordem. Problema da ordenação - Definição formal
BC1424 Algoritmos e Estruturas de Dados I Aula 05 Custos de um algoritmo e funções de complexidade
BC1424 Algoritmos e Estruturas de Dados I Aula 05 Custos de um algoritmo e funções de complexidade Prof. Jesús P. Mena-Chalco 1Q-2016 1 1995 2015 2 Custo de um algoritmo e funções de complexidade Introdução
Simulador didático de testes de algoritmos de ordenação
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA Simulador didático de testes de algoritmos de ordenação Nomes: Bruno Silva Guedes (159033) Matheus de Carvalho Proença (160184) Turma:
Trabalho Prático 1. Valor: 1,0 pontos (10% da nota total) Data de Entrega: 02/05/2010
Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Programa de Pós-Graduação em Ciência da Computação Projeto e Análise de Algoritmos - 1 o semestre de 2010 Professor: David Menotti
Elementos de Análise Assintótica
Elementos de Análise Assintótica Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia 23 de Março de 2018 Aula de hoje Nesta aula veremos: Elementos de Análise Assintótica
ANÁLISE DE ALGORITMOS: PARTE 1. Prof. André Backes. Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa
ANÁLISE DE ALGORITMOS: PARTE 1 Prof. André Backes Algoritmos 2 Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa Precisamos escrever o seu algoritmo Um algoritmo
Programação II. Busca em Vetor (search) Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Busca em Vetor (search) Bruno Feijó Dept. de Informática, PUC-Rio Busca em Vetor Problema: Entrada: vetor v com n elementos elemento d a procurar Saída m se o elemento procurado está em
SCC-501 Introdução à Ciência de Computação II
SCC-501 João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis 2011 João
7. Introdução à Complexidade de Algoritmos
7. Introdução à Complexidade de Algoritmos Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 7. Introdução à Complexidade de Algoritmos Estruturas de Dados 1 / 1 Análise de Algoritmos
Complexidade de Algoritmos
Complexidade de Algoritmos! Uma característica importante de qualquer algoritmo é seu tempo de execução! é possível determiná-lo através de métodos empíricos, considerando-se entradas diversas! é também
5. Análise de Complexidade de Algoritmos. João Pascoal Faria (versão original) Ana Paula Rocha (versão 2003/2004) Luís Paulo Reis (versão 2005/2006)
5. Análise de Complexidade de Algoritmos João Pascoal Faria (versão original) Ana Paula Rocha (versão 2003/2004) Luís Paulo Reis (versão 2005/2006) FEUP - MIEEC Prog 2-2006/2007 Introdução Algoritmo: conjunto
INF1007: Programação 2 6 Ordenação de Vetores. 01/10/2015 (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 6 Ordenação de Vetores 01/10/2015 (c) Dept. Informática - PUC-Rio 1 Tópicos Introdução Ordenação bolha (bubble sort) Ordenação por seleção (selection sort) 01/10/2015 (c) Dept. Informática
4º 20/10/2003. ÍNDICE
Universidade Federal de Juiz de Fora UFJF. Departamento de Ciência da Computação DCC. Curso de Ciência da Computação. Análise e Projeto de Algoritmos 4º período. Filippe Jabour. Atualizado em 20/10/2003.
Análise e Projeto de Algoritmos
Análise e Projeto de Algoritmos Mestrado em Ciência da Computação Prof. Dr. Aparecido Nilceu Marana Faculdade de Ciências I think the design of efficient algorithms is somehow the core of computer science.
Algoritmos de Ordenação
Algoritmos de Ordenação ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo [email protected] 10/2008 Material baseado em
Análise de Complexidade de Algoritmos
Análise de Complexidade de Algoritmos Algoritmos e Estruturas de Dados 2009/2010 Introdução Algoritmo: conjunto claramente especificado de instruções a seguir para resolver um problema Análise de algoritmos:
Estruturas de Dados. Árvores AVL: Partes I e II. Desempenho de ABBs (Revisão)
Estruturas de Dados Árvores AVL: Partes I e II Prof. Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis em http://ww3.datastructures.net (Goodrich
Teoria dos Grafos Aula 7
Teoria dos Grafos Aula 7 Aula passada Implementação BFS DFS, implementação Complexidade Aplicações Aula de hoje Classe de funções e notação Propriedades da notação Funções usuais Tempo de execução Comparando
Análise de algoritmos Parte I
Parte I SCE-8 Introdução à Ciência da Computação II Rosane Minghim Algoritmo Noção geral: conjunto de instruções que devem ser seguidas para solucionar um determinado problema Cormen et al. (2002) Qualquer
5. Algoritmos de Ordenação
Introdução à Computação II 5952011 5. Algoritmos de Ordenação Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 5.1. Ordenação por Inserção 5.2. Ordenação por Seleção
Construção de Algoritmos II Aula 06
exatasfepi.com.br Construção de Algoritmos II Aula 06 André Luís Duarte Porque mil anos são aos teus olhos como o dia de ontem que passou, e como a vigília da noite. Salmos 90:4 Recursividade e complexidade
Estruturas de Dados. Pedro Ribeiro 2017/2018 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Estruturas de Dados 2017/ / 16
Estruturas de Dados Pedro Ribeiro DCC/FCUP 2017/2018 Pedro Ribeiro (DCC/FCUP) Estruturas de Dados 2017/2018 1 / 16 Informações Gerais Site: http://www.dcc.fc.up.pt/~pribeiro/aulas/edados1718/ Piazza: http://piazza.com/up.pt/spring2018/cc1007
Complexidade de Algoritmos
Complexidade de Algoritmos O que é um algoritmo? Sequência bem definida e finita de cálculos que, para um dado valor de entrada, retorna uma saída desejada/esperada. Na computação: Uma descrição de como
Algoritmos e Estruturas de Dados I Aula 06 Custos de um algoritmo
Algoritmos e Estruturas de Dados I Aula 06 Custos de um algoritmo Prof. Jesús P. Mena-Chalco 1Q-2019 1 lista 3 7-2 6 NULL Node *Busca(int x, Node *lista) { while (lista!=null && lista->data!=x) lista =
Algoritmos de ordenação: Bucketsort, Radixsort e Seleção
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Algoritmos de ordenação: Bucketsort, Radixsort e Seleção Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/
1 a Lista Professor: Claudio Fabiano Motta Toledo Estagiário PAE: Jesimar da Silva Arantes
SSC0503 - Introdução à Ciência de Computação II 1 a Lista Professor: Claudio Fabiano Motta Toledo ([email protected]) Estagiário PAE: Jesimar da Silva Arantes ([email protected]) 1. O que significa
ALGORITMOS AVANÇADOS UNIDADE I Análise de Algoritmo - Notação O. Luiz Leão
Luiz Leão [email protected] http://www.luizleao.com Conteúdo Programático 1.1 - Algoritmo 1.2 - Estrutura de Dados 1.2.1 - Revisão de Programas em C++ envolvendo Vetores, Matrizes, Ponteiros, Registros
Quantidade de memória necessária
Tempo de processamento Um algoritmo que realiza uma tarefa em 10 horas é melhor que outro que realiza em 10 dias Quantidade de memória necessária Um algoritmo que usa 1MB de memória RAM é melhor que outro
SIN5013 Análise de Algoritmos e Estrutura de Dados - 1o Semestre de 2019
SIN5013 Análise de Algoritmos e Estrutura de Dados - 1o Semestre de 2019 Luciano Antonio Digiampietri Escola de Artes, Ciências e Humanidades Programa de Pós-graduação em Sistemas de Informação (PPgSI)
Programação de Computadores:
Instituto de C Programação de Computadores: Pseudocódigo e Estruturas Básicas de Controle Luis Martí Instituto de Computação Universidade Federal Fluminense [email protected] - http://lmarti.com Roteiro
