Projeto de algoritmos: Algoritmos Gulosos
|
|
|
- Dina de Abreu Paixão
- 8 Há anos
- Visualizações:
Transcrição
1 Projeto de algoritmos: Algoritmos Gulosos ACH 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] 09/2008 Delano M. Beder (EACH - USP) Algoritmos Gulosos ACH / 12
2 Algoritmos Gulosos: Conceitos Básicos Tipicamente algoritmos gulosos são utilizados para resolver problemas de otimização. Um algoritmo guloso sempre faz a escolha que parece ser a melhor a cada iteração. Ou seja, a escolha é feita de acordo com um critério guloso! É uma decisão localmente ótima! Propriedade da escolha gulosa: garante que a cada iteração é tomada uma decisão que levará a um ótimo global. Em um algoritmo guloso uma escolha que foi feita nunca é revista, ou seja, não há qualquer tipo de backtracking. Delano M. Beder (EACH - USP) Algoritmos Gulosos ACH / 12
3 Algoritmos Gulosos: Idéias Básicas A idéia básica da estratégia gulosa é construir por etapas uma solução ótima. Em cada passo, após selecionar um elemento da entrada (o melhor), decide-se se ele é viável - vindo a fazer parte da solução - ou não. Após uma seqüência de decisões, uma solução para o problema é alcançada. Nessa seqüência de decisões, nenhum elemento é examinado mais de uma vez: ou ele fará parte da solução, ou será descartado. Freqüentemente, a entrada do problema já vem ordenada. Delano M. Beder (EACH - USP) Algoritmos Gulosos ACH / 12
4 Intercalação (Fusão) de Vetores No livro [2], foi apresentado um método para intercalação(fusão) de vetores: Intercalação de Vetores int [] intercalacao(int [] a, int [] b) { int posa = 0, posb = 0, posc = 0; int [] c = new int [a.length + b.length]; // Enquanto nenhuma das seqüências está vazia... while (posa < a.length && posb < b.length) { // Pega o menor elemento das duas seqüências if(b[posb] <= a[posa]) { c[posc] = b[posb]; posb++; } else { c[posc] = a[posa]; posa++; } posc++; } Delano M. Beder (EACH - USP) Algoritmos Gulosos ACH / 12
5 Intercalação de Vetores (continuação) Intercalação de Vetores (continuação) // Completa com a seqüência que ainda não acabou while (posa < a.length) { c[posc] = a[posa]; posc++; posa++; } while (posb < b.length) { c[posc] = b[posb]; posc++; posb++; } return c; // retorna o valor resultado da intercalação } Delano M. Beder (EACH - USP) Algoritmos Gulosos ACH / 12
6 Intercalação sucessiva de Vetores Um exemplo simples que ilustra bem a estratégia gulosa é o problema da intercalação sucessiva de vetores. Trata-se de intercalar n vetores Há várias maneiras possíveis de se realizar uma seqüência de intercalações Ocorre que isso pode afetar o número de comparações necessárias Lembremos o caso mais simples de intercalação de dois vetores, com tamanhos m 1 e m 2 O tamanho do vetor resultante é m 1 + m 2 O número de comparações necessárias (no pior caso) será m 1 + m 2 1 Delano M. Beder (EACH - USP) Algoritmos Gulosos ACH / 12
7 Intercalação sucessiva de Vetores Três vetores V 1, V 2 e V 3, com respectivos tamanhos 15, 10 e 5. Uma maneira de realizar a intercalação seria: primeiro intercalar V 1 e V 2 e depois o vetor resultante V 12 com V 3. O número de comparações para produzir V 12 é = 24. Para intercalar V 12 com V 3 é ( ) = 29. No total, teremos , ou seja, 53 comparações. Primeiro intercalar V 2 e V 3 e depois o vetor resultante V 23 com V 1. O número de comparações para produzir V 23 é = 14. Para intercalar V 23 com V 1 é (10 + 5) = 29. No total, teremos , ou seja, 43 comparações. Primeiro intercalar V 1 e V 3 e depois o vetor resultante V 13 com V 2. Quantas comparações são feitas? A ordem das intercalações influencia substancialmente o número de comparações requeridas Delano M. Beder (EACH - USP) Algoritmos Gulosos ACH / 12
8 Intercalação sucessiva de Vetores Quantidade de comparações V 1 + V 2 V 12 e V 12 + V 3 V 123 m 1 + m 2 1 para produzir V 12 m 12 + m 3 1 para produzir V 123 Ou seja, m 1 + m m 1 + m 2 + m 3 1 2(m 1 + m 2 ) + m 3 2 V 2 + V 3 V 23 e V 23 + V 1 V 123 m 2 + m 3 1 para produzir V 23 m 23 + m 1 1 para produzir V 123 Ou seja, m 2 + m m 2 + m 3 + m 1 1 2(m 2 + m 3 ) + m 1 2 V 1 + V 3 V 13 e V 13 + V 2 V 123 m 1 + m 3 1 para produzir V 13 m 13 + m 2 1 para produzir V 123 Ou seja, m 1 + m m 1 + m 3 + m 2 1 2(m 1 + m 3 ) + m 2 2 O primeiro par de vetores a ser intercalado dá contribuição com maior peso para o total. Delano M. Beder (EACH - USP) Algoritmos Gulosos ACH / 12
9 Intercalação sucessiva de Vetores um algoritmo guloso para esse problema Seleciona, a cada passo um par com soma mínima dentre os presentes para fazer parte da solução. Ao final, teremos uma seqüência ótima de intercalações Delano M. Beder (EACH - USP) Algoritmos Gulosos ACH / 12
10 Procedimento Intercala Ótima de Vetores procedimento intercala_ótima_vetores Entrada: Conjunto V de n vetores (com seus tamanhos) Saída: par (intercalação dos n vetores, número de comparações) BEGIN numcmp = 0; REPITA escolhe os dois menores vetores A e B (seleção gulosa) V = V - { A, B }; C = Intercala ( A, B ); V = V + { C }; numcmp = numcmp + tam(a) + tam(b) - 1 ATÉ QUE V = 1; retorne_saída(v, numcmp); END Delano M. Beder (EACH - USP) Algoritmos Gulosos ACH / 12
11 int[] merge(int[][] conjunto) { int tam = conjunto.length; int numcmp = 0; } do { /* escolhe os dois menores vetores A e B (seleção gulosa) */ Menores menores = menoresvetores(conjunto); int prim = menores.getprimeiro(); int seg = menores.getsegundo(); int[] A = conjunto[prim]; int[] B = conjunto[seg]; /* V = V - A, B ; */ conjunto = removevetores(conjunto, menores); /* C = Intercala(A, B); */ int[] C = merge(a, B); /* V = V + C */ conjunto[tam - 2] = C; numcmp = numcmp + A.length + B.length - 1; tam = tam - 1; } while (tam > 1); System.out.println("Foram feitas " + numcmp + " Comparações"); return conjunto[0]; Delano M. Beder (EACH - USP) Algoritmos Gulosos ACH / 12
12 Resumo Foi apresentada a técnica de projeto de algoritmos: algoritmos gulosos A idéia básica da estratégia gulosa é construir por etapas uma solução ótima. Em cada passo, após selecionar um elemento da entrada (o melhor), decide-se se ele é viável - vindo a fazer parte da solução - ou não. Referências utilizadas [1] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest & Clifford Stein. Algoritmos - Tradução da 2a. Edição Americana. Editora Campus, [2] Laira V. Toscani & Paulo A.S. Veloso. Complexidade de Algoritmos. Série Livros Didáticos, Instituto de Informática da UFRGS, 2a. Edição, Delano M. Beder (EACH - USP) Algoritmos Gulosos ACH / 12
Algoritmos de Ordenação: MergeSort
Algoritmos de Ordenação: MergeSort 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
Algoritmos de Ordenação: Cota Inferior
Algoritmos de Ordenação: Cota Inferior 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
Algoritmos de Ordenação: QuickSort
Algoritmos de Ordenação: QuickSort 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
Hashing. ACH Introdução à Ciência da Computação II. Delano M. Beder
ing 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] 11/2008 Material baseado em slides do professor
Técnicas de projeto de algoritmos: Indução
Técnicas de projeto de algoritmos: Induçã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] 08/2008
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
Algoritmos de Ordenação: HeapSort
Algoritmos de Ordenação: HeapSort 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
Complexidade Assintótica
Complexidade Assintótica 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] 08/2008 Material baseado
Algoritmos Gulosos. Norton T. Roman
Algoritmos Gulosos Norton T. Roman Apostila baseada no trabalho de Delano M. Beder, Luciano Digianpietri, David Matuszek, Marco Aurelio Stefanes e Nivio Ziviani Algoritmos Gulosos São aqueles que, a cada
Algoritmos de Ordenação. Cota inferior. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO
Algoritmos de Ordenação Cota inferior Professora: Fátima L. S. Nunes 1 1 1 Algoritmos de Ordenação Algoritmos de ordenação que já conhecemos: 2 2 2 Algoritmos de Ordenação Algoritmos de ordenação que já
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
Técnicas de projeto de algoritmos: Indução
Técnicas de projeto de algoritmos: Induçã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] 08/2008
Algoritmos de Ordenação: Tempo Linear
Algoritmos de Ordenação: Tempo Linear 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
Métodos de Ordenação Parte 2
Estrutura de Dados II Métodos de Ordenação Parte 2 Prof a Márcio Bueno [email protected] / [email protected] Material baseado nos materiais da Prof a Ana Eliza e Prof. Robson Lins Introdução
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
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 10 Métodos de Ordenação de Complexidade Linear Edirlei Soares de Lima Ordenação Problema: Entrada: conjunto de itens a 1, a 2,..., a n ; Saída:
Hashing Endereçamento Direto Tabelas Hash
Hashing Endereçamento Direto Tabelas Hash Professora: Fátima L. S. Nunes 1 1 1 Vimos até agora: Introdução Conceitos e técnicas de Orientação a Objetos Conceitos e aplicações de Complexidade Assintótica
Tentativa e Erro (Backtracking)
(Backtracking) Norton T. Roman Apostila baseada no trabalho de Delano M. Beder, David Matuszek e Nivio Ziviani Suponha que você tem que tomar uma série de decisões dentre várias possibilidades, onde Você
Análise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Professor Ariel da Silva Dias Algoritmos Divisão e Conquista Construção incremental Resolver o problema para um sub-conjunto dos elementos de entrada; Então, adicionar
Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade
Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade Gustavo E.A.P.A. Batista 25 de janeiro de 2005 1 Contextualização 2 Caminhos Mínimos Caminhos Mínimos de uma Origem
Complexidade de Algoritmos
Complexidade de Algoritmos Prof. Diego Buchinger [email protected] [email protected] Prof. Cristiano Damiani Vasconcellos [email protected] Funções de Complexidade Considere
FUNDAÇÃO UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO
Professor: Marcelo Santos Linder Disciplina: Algoritmos e Programação Código Disciplina: Carga Horária: 60h Período: Pág. 1 de 5 PROFESSOR TITULAÇÃO: Engenheiro de Computação EMENTA: Conceito de algoritmo.
MÉTODOS DE ORDENAÇÃO. Introdução à Programação SI2
MÉTODOS DE ORDENAÇÃO Introdução à Programação SI2 2 Conteúdo Conceitos básicos Classificação por troca Classificação por inserção Classificação por seleção 3 Conceitos Básicos Ordenar: processo de rearranjar
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
heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i<n; i++) { e = x[i]; s = i; f = (s-1)/2;
heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i0 && x[f]
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
2. Ordenação por Seleção
1 Algoritmos de Ordenação Simples (SelectionSort, InsertionSort, BubbleSort) 1. Introdução Objetivo: Determinar a seqüência ordenada dos elementos de um vetor numérico. Algumas considerações: O espaço
Teoria da Computação. Aula 4 Técnicas de Análise 5COP096. Aula 4 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr
5COP096 Teoria da Computação Aula 4 Prof. Dr. Sylvio Barbon Junior 1 Sumário 1) Técnicas de Análise de Algoritmos 2) Paradigmas de Projeto de Algoritmos 1) Indução 2) Recursão 3) Algoritmos Tentativa e
Projeto e Análise de Algoritmos
Projeto e Algoritmos Pontifícia Universidade Católica de Minas Gerais [email protected] 26 de Maio de 2017 Sumário A complexidade no desempenho de Quando utilizamos uma máquina boa, ela tende a ter
BCC Projeto e Análise de Algoritmos Aula 0: Apresentação
1 BCC 241 - Projeto e Análise de Algoritmos Aula 0: Apresentação DECOM/UFOP 5º. Período - 2013/01 Anderson Almeida Ferreira BCC 241/2012-2 2 Objetivos do curso Dados dois algoritmos, compará-los quanto
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
Programação de Computadores II TCC
Programação de Computadores II TCC-00.174 Profs.: Leandro A. F. Fernandes (Turma A1) & Marcos Lage (Turma B1) (Turma A1) www.ic.uff.br/~laffernandes (Turma B1) www.ic.uff.br/~mlage Conteúdo: Material elaborado
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 09 Algoritmos de Ordenação Edirlei Soares de Lima Ordenação Problema: Entrada: conjunto de itens a 1, a 2,..., a n ; Saída: conjunto de itens
Introdução Paradigmas
Introdução Paradigmas Recursividade Algoritmos tentativa e erro Divisão e conquista Programação dinâmica Algoritmos gulosos Algoritmos aproximados 1 Introdução O projeto de algoritmos requer abordagens
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
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 Tópicos Introdução Ordenação por bolha (bubble sort)
BCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 13: Ordenação: MergeSort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes Email: [email protected]
Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia
Introdução à Análise de Algoritmos Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia Aula de hoje Nesta aula veremos: Sobre a disciplina Exemplo: ordenação Sobre a disciplina
Paradigmas de Projetos de Algoritmos
Paradigmas de Projetos de Algoritmos Luciana Assis 9 de junho de 2016 Luciana Assis (UFVJM) 9 de junho de 2016 1 / 36 1 Introdução 2 Força Bruta 3 Abordagem Incremental ou Construtiva 4 Recursão 5 Divisão
MAC121 ALGORITMOS E ESTRUTURAS DE DADOS I 2O. SEMESTRE DE 2017
PROVA 1 MAC121 ALGORITMOS E ESTRUTURAS DE DADOS I 2O. SEMESTRE DE 2017 Nome: Número USP: Instruções: (1 ) Esta prova é individual. (2 ) Não destaque as folhas deste caderno. (3 ) A prova consiste de 6
Área que visa determinar a complexidade (custo) de um algoritmo, com isso é possível:
Área que visa determinar a complexidade (custo) de um algoritmo, com isso é possível: Comparar algoritmos: existem algoritmos que resolvem o mesmo tipo de problema. Determinar se o algoritmo é ótimo :
Busca em Profundidade. Busca em Grafos. Busca em Grafos. Busca em Grafos. Busca em Grafos. Os objetivos da busca são: Aplicações???
Teoria dos Grafos Introdução Prof. Humberto Brandão [email protected] aula disponível no site: http:bcc.unifal-mg.edu.br~humberto Universidade Federal de Alfenas Departamento de Ciências Exatas
Invariantes de Laço. Profa. Sheila Morais de Almeida. junho DAINF-UTFPR-PG
Invariantes de Laço Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Invariantes de Laço junho - 2018 1 / 28 Este material é preparado usando como referências
Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.
Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto de
Métodos de ordenação. Bubble sort:
Métodos de ordenação Bubble sort: O método de ordenação por bubble sort ou conhecido como bolha consiste em compara dados armazenados em um vetor de tamanho qualquer, comparando cada elemento de uma posição
Informações Importantes! INF TURMA A
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA DISCIPLINA: ESTRUTURAS DE DADOS CÓDIGO: INF01203 CURSOS/PRE-REQUISITO: o Engenharia da Computação
Projeto e Análise de Algoritmos. Introdução. Prof. Ademir Constantino Universidade Estadual de Maringá Departamento de Informática
Projeto e Análise de Algoritmos Introdução Prof. Ademir Constantino Universidade Estadual de Maringá Departamento de Informática Projeto e Análise de Algoritmos Eu penso que o projeto de algoritmos eficientes
Classificação e Pesquisa
Classificação e Pesquisa Análise de Algoritmos - Complexidade Prof. Rodrigo Rocha [email protected] http://www.bolinhabolinha.com Onde Estamos Ementa Pesquisa de Dados Seqüencial Binária Métodos
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
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA DISCIPLINA: ESTRUTURAS DE DADOS CÓDIGO: INF01203 CURSOS/PRE-REQUISITO: o Engenharia da Computação
Algoritmos de Ordenação. Profº Carlos Alberto T. Batista
Algoritmos de Ordenação Profº Carlos Alberto T. Batista E-mail: [email protected] [email protected] Por que ordenar os dados? Encontrar elementos em uma lista torna-se algo simples e
5COP096 TeoriadaComputação
Sylvio 1 Barbon Jr [email protected] 5COP096 TeoriadaComputação Aula 13 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas NP-Completo Algoritmos Não-deterministas; Classes NP-Completo e NP-Dificil; Teorema
Trabalho de Análise de Algoritmos. Problema da Mochila
Trabalho de Análise de Algoritmos Problema da Mochila Felipe R. S. Barbosa, Flávio R. J. de Sousa, Leonardo dos Reis Vilela Faculdade de Ciência da Computação Universidade Federal de Uberlândia (UFU) Uberlândia
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
Filas de Prioridades Letícia Rodrigues Bueno
Filas de Prioridades Letícia Rodrigues Bueno UFABC Heaps Heaps: lista linear com chaves s 1,..., s n com propriedade s i s i/2, para 1 < i < n; Heaps Heaps: lista linear com chaves s 1,..., s n com propriedade
Aula 12 Métodos de Classificação: - Classificação por Inserção Direta - Classificação por Seleção Direta
Aula 12 Métodos de Classificação: - Classificação por Inserção Direta - Direta Prof. Gustavo Callou [email protected] [email protected] Classificação por Inserção Métodos de Classificação em Memória
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
Ciclos hamiltonianos e o problema do caixeiro viajante
Ciclos hamiltonianos e o problema do caixeiro viajante Algoritmos em Grafos Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional.
Estruturas de Dados 2
Estruturas de Dados 2 Técnicas de Projeto de Algoritmos Dividir e Conquistar IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/83 Projeto de Algoritmos por Divisão
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
Linguagem C: Ordenação
Instituto de C Linguagem C: Ordenação Luis Martí Instituto de Computação Universidade Federal Fluminense [email protected] - http://lmarti.com Tópicos Principais Introdução Algoritmos de ordenação Ordenação
Classificação Externa: Intercalação de Partições Classificadas
Classificação Externa: Intercalação de Partições Classificadas Vanessa Braganholo Baseado no Material de: Inhaúma Neves Ferraz (IC/UFF) Relembrando: Modelo da Classificação Externa 2 Aula Passada: Etapa
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
Algoritmos em Strings
Algoritmos em Strings R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes FEUP, MIEIC, CAL, 2010/2011 1 Índice Pesquisa exacta (string matching) Pesquisa aproximada (approximate string matching)
ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ÁRVORES BINÁRIAS DE BUSCA Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REFERÊNCIA Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Cap. 4 INSTITUTO DE COMPUTAÇÃO
Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet
Aula 17 Quick Sort Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno Ordenação
13 Hashing (parte 2) SCC201/501 - Introdução à Ciência de Computação II
13 Hashing (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 Ponti Jr. (ICMCUSP)
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
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos A. G. Silva Baseado nos materiais de Souza, Silva, Lee, Rezende, Miyazawa Unicamp Ribeiro FCUP 18 de agosto de 2017 Conteúdo programático Introdução (4 horas/aula) Notação
TEORIA: 60 LABORATÓRIO: 0
Universidade Federal do ABC Rua Santa Adélia, 166 - Bairro Bangu - Santo André - SP - Brasil CEP 09.210-170 - Telefone/Fax: +55 11 4996-3166 1. CÓDIGO E NOME DA DISCIPLINA: BC1435 - Análise de Algoritmos
ALGORITMOS DE ORDENAÇÃO RECURSIVOS
1/14 ALGORITMOS DE ORDENAÇÃO RECURSIVOS Ordenação rápida ( Quicksort ) 2/14 Ordenação rápida ( Quicksort ) Ideia - Baseia-se num princípio muito simples que, quando aplicado recursivamente, acaba por ordenar
SCC Capítulo 6 Paradigmas e Técnicas de Projetos de Algoritmos
SCC-501 - Capítulo 6 Paradigmas e Técnicas de Projetos de Algoritmos João Luís Garcia Rosa 1 1 Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis
