Análise de algoritmos
|
|
|
- Lúcia Pinho Aquino
- 8 Há anos
- Visualizações:
Transcrição
1 Análise de algoritmos Ordenação em tempo linear Prof. Flávio Rogério Uber (UEM/DIN) Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN)
2 Conteúdo Limites inferiores para ordenação por comparações Ordenação por contagem Radix sort Bucket sort Exercícios Referências
3 Limites inferiores para ordenação por comparações Em um algoritmo de ordenação por comparação, a ordem dos elementos é determinada usando apenas comparações entre os elementos Supondo que não existem elemento iguais na entrada, todas as operações de comparação fornecem a mesma informação, e portanto podemos usar um único operador de comparação Vamos supor que todas as comparações têm a forma a i a j Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 3 / 19
4 Limites inferiores para ordenação por comparações As ordenações por comparações podem ser vistas de modo abstrato em termos de árvores de decisão Uma árvore de decisão é uma árvore binária cheia que representa as comparações executadas por um algoritmo de ordenação por comparação quando ele opera em uma entrada de um tamanho dado. Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 4 / 19
5 Limites inferiores para ordenação por comparações As ordenações por comparações podem ser vistas de modo abstrato em termos de árvores de decisão Uma árvore de decisão é uma árvore binária cheia que representa as comparações executadas por um algoritmo de ordenação por comparação quando ele opera em uma entrada de um tamanho dado. Exemplo Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 4 / 19
6 Limites inferiores para ordenação por comparações Cada nó é anotado por i : j para algum i e j no intervalo 1 i, j n Cada folha é anotada por uma permutação π(1), π(2),..., π(3) A execução de um algoritmo de ordenação corresponde a traçar um caminho desde a raiz até a folha Cada algoritmo de ordenação correto deve ser capaz de produzir cada permutação da entrada Cada uma das n! permutações sobre os n elementos deve aparecer como uma das folhas O tamanho do caminho mais longo da raiz a uma folha corresponde ao número de comparações do pior caso Um limite inferior sobre as alturas de todas as árvores de decisão é um limite inferior sobre o tempo de execução de qualquer algoritmo de ordenação por comparação Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 5 / 19
7 Limites inferiores para ordenação por comparações Teorema 8.1 Qualquer algoritmo de ordenação por comparação exige Ω(n lg n) comparações no pior caso. Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 6 / 19
8 Limites inferiores para ordenação por comparações Teorema 8.1 Qualquer algoritmo de ordenação por comparação exige Ω(n lg n) comparações no pior caso. Prova Considere um árvore de decisão com altura h com l folhas Cada uma das n! permutações da entrada aparecem como alguma folha, portanto n! l Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 6 / 19
9 Limites inferiores para ordenação por comparações Teorema 8.1 Qualquer algoritmo de ordenação por comparação exige Ω(n lg n) comparações no pior caso. Prova Considere um árvore de decisão com altura h com l folhas Cada uma das n! permutações da entrada aparecem como alguma folha, portanto n! l Como uma árvore binária de altura h não tem mais que 2 h folhas, temos n! l 2 h Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 6 / 19
10 Limites inferiores para ordenação por comparações Teorema 8.1 Qualquer algoritmo de ordenação por comparação exige Ω(n lg n) comparações no pior caso. Prova Considere um árvore de decisão com altura h com l folhas Cada uma das n! permutações da entrada aparecem como alguma folha, portanto n! l Como uma árvore binária de altura h não tem mais que 2 h folhas, temos n! l 2 h Aplicando logaritmo, obtemos h lg(n!) Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 6 / 19
11 Limites inferiores para ordenação por comparações Teorema 8.1 Qualquer algoritmo de ordenação por comparação exige Ω(n lg n) comparações no pior caso. Prova Considere um árvore de decisão com altura h com l folhas Cada uma das n! permutações da entrada aparecem como alguma folha, portanto n! l Como uma árvore binária de altura h não tem mais que 2 h folhas, temos n! l 2 h Aplicando logaritmo, obtemos h lg(n!) Pela aproximação de Stirling (equação 3.18), n! > (n/e) n, e portanto h = Ω(n lg n) Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 6 / 19
12 Ordenação por contagem Cada elemento da entrada é um inteiro no intervalo de 0 a k Quando k = O(n), a ordenação é executada no tempo Θ(n) Ideia Determinar, para cada elemento x da entrada, o número de elementos menores que x Esta informação é utilizada para inserir o elemento diretamente em sua posição no arranjo de saída Por exemplo, existem 17 elementos menores que x, então x é colocado na posição de saída 18 A entrada do algoritmo é um array A[1..n], a saída é dada em um array B[1..n], e um array C[0..k] é utilizado para armazenamento de trabalho Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 7 / 19
13 Ordenação por contagem Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 8 / 19
14 Ordenação por contagem counting-sort(a, B, k) n = A.comprimento 1 for i = 0 to k 2 C[i] = 0 3 for j = 1 to n 4 C[A[j]] = C[A[j]] // agora C[i] contém o número de elementos iguais a i 6 for i = 1 to k 7 C[i] = C[i] + C[i - 1] 8 // agora C[i] contém o número de elementos menores que o iguais a i 9 for j = n downto 1 10 B[C[A[j]]] = A[j] 11 C[A[j]] = C[A[j]] - 1 Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 9 / 19
15 Ordenação por contagem Quanto tempo a ordenação por contagem exige? Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 10 / 19
16 Ordenação por contagem Quanto tempo a ordenação por contagem exige? O loop das linhas 1 e 2 demora o tempo Θ(k) O loop das linhas 3 e 4 demora o tempo Θ(n) O loop das linhas 6 e 7 demora o tempo Θ(k) O loop das linhas 9 e 11 demora o tempo Θ(n) Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 10 / 19
17 Ordenação por contagem Quanto tempo a ordenação por contagem exige? O loop das linhas 1 e 2 demora o tempo Θ(k) O loop das linhas 3 e 4 demora o tempo Θ(n) O loop das linhas 6 e 7 demora o tempo Θ(k) O loop das linhas 9 e 11 demora o tempo Θ(n) Portanto, o tempo total é Θ(k + n) Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 10 / 19
18 Ordenação por contagem Quanto tempo a ordenação por contagem exige? O loop das linhas 1 e 2 demora o tempo Θ(k) O loop das linhas 3 e 4 demora o tempo Θ(n) O loop das linhas 6 e 7 demora o tempo Θ(k) O loop das linhas 9 e 11 demora o tempo Θ(n) Portanto, o tempo total é Θ(k + n) Quando k = O(n), o tempo de execução é Θ(n) Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 10 / 19
19 Radix sort Algoritmo usado pelas máquina de ordenação de cartões Ideia Ordenar as chaves pelos dígitos, começando com o menos significativo É essencial que o algoritmo de ordenação dos dígitos seja estável É utilizado para ordenar registros cuja a chave é constituída de vários campos Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 11 / 19
20 Radix sort Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 12 / 19
21 Radix sort radix-sort(a, d) 1 for i = 1 to d 2 usar uma ordenação estável para ordenar o arranjo A sobre o dígito i Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 12 / 19
22 Radix sort Análise Suponha que a ordenação por contagem é utilizada como ordenação intermediária Θ(n + k) por passagem (dígitos estão no intervalo 0,..., k) d passagens Total de Θ(d(n + k)) Se k = O(n) e d constante, obtemos Θ(n) Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 13 / 19
23 Bucket sort A entrada é gerada por um processo aleatório que distribui os elementos uniformemente sobre o intervalo [0, 1) Ideia Dividir o intervalo [0, 1) em n baldes do mesmo tamanho Distribuir os n valores de entrada nos baldes Ordenar cada balde Juntar os elementos de todos os baldes Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 14 / 19
24 Bucket sort Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 15 / 19
25 Bucket sort Entrada: A[1..n], onde 0 A[i] < 1 para todo i Auxiliar: array B[0..n 1] de listas ligadas, cada lista começa vazia bucket-sort(a) 1 n = A.comprimento 2 for i = 1 to n 3 inserir A[i] na lista B[floor(n * A[i])] 4 for i = 1 to n insertion-sort(b[i]) 6 concatenar as listas B[0], B[1],..., B[n - 1] em ordem Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 16 / 19
26 Bucket sort Análise Cada balde não deve ter muitos valores Todas as linhas do algoritmo, exceto a do ordenação por inserção, demoram Θ(n) Intuitivamente, cada balde terá um número constante, já que a média é um elemento por balde Portanto, cada balde é ordenado em O(1) O tempo para ordenar todos os baldes é O(n) O tempo esperado de execução do algoritmo é Θ(n) Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 17 / 19
27 Exercícios Qual é a menor profundidade possível de uma folha em uma árvore de decisão para uma ordenação por comparação? Usando a figura 8.2 como modelo, ilustre a operação de counting-sort sobre o array A = 6, 0, 2, 0, 1, 3, 4, 6, 1, 3, Descreva um algoritmo que, dados n inteiros no intervalo de 0 a k, realiza o pré-processamento de sua entrada e depois responde a qualquer consulta sobre quantos dos n inteiros recaem em um intervalo [a..b] no tempo O(1). Seu algoritmo deve utilizar o tempo de pré-processamento Θ(n + k) Usando a figura 8.3 como modelo, ilustre a operação de radix-sort sobre a seguinte lista de palavras em inglês: COW, DOG, SEA, RUG, ROW, MOB, BOX, TAB, BAR, EAR, TAR, DIG, BIG, TEA, NOE, FOX Quais dos seguintes algoritmos de ordenação são estáveis: ordenação por inserção, ordenação por intercalação, heapsort e quicksort? Forneça um esquema simples que torne estável qualquer algoritmo de ordenação. Quanto tempo e espaço adicional seu esquema requer? Usando a figura 8.4 como modelo, ilustre a operação de bucket-sort no arranjo A = 0, 79; 0, 16; 0, 64; 0, 39; 0, 20; 0, 89; 0, 53; 0, 71; 0, Qual é o tempo de execução do pior caso para o algoritmo de bucket sort? Que alteração simples no algoritmo preserva seu tempo de execução esperado linear e torna seu tempo de execução no pior caso igual a O(n lg n). Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 18 / 19
28 Referências Thomas H. Cormen et al. Introdução a Algoritmos. 2 a edição em português. Capítulo 8. Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) 19 / 19
Tópico 5 Algoritmos de Ordenação. Parte II - métodos de ordenação: counting sort, radix sort e bucket sort.
Tópico 5 Algoritmos de Ordenação Parte II - métodos de ordenação: counting sort, radix sort e bucket sort. 1 Árvore de Decisão Todos os algoritmos descritos anteriormente utilizam comparações para determinar
Ordenação em Tempo Linear
Ordenação em Tempo Linear Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 19 Algoritmos e Estruturas de Dados I Ordenação em tempo linear Algoritmos de ordenação por comparação: InsertSort; Quicksort;
Ordenação em tempo linear
Ordenação em tempo linear CLRS cap 8 Algoritmos p. 1 Ordenação: limite inferior Problema: Rearranjar um vetor A[1..n] de modo que ele fique em ordem crescente. Existem algoritmos que consomem tempo O(n
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á
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:
Algoritmos de ordenação Quicksort
Algoritmos de ordenação Quicksort Sumário Introdução Descrição do quicksort Desempenho do quicksort Pior caso Melhor caso Particionamento balanceado Versão aleatória do quicksort Análise do quicksort Pior
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
Ordenação. Prof. Túlio A. M. Toffolo Prof. Marco Antonio M. Carvalho BCC402 Aula 04 Algoritmos e Programação Avançada
Ordenação Prof. Túlio A. M. Toffolo Prof. Marco Antonio M. Carvalho http://www.toffolo.com.br BCC402 Aula 04 Algoritmos e Programação Avançada Aplicações Como testar se todos os elementos de um conjunto
Estruturas de Dados 2
Estruturas de Dados 2 Algoritmos de Ordenação em Tempo Linear IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/38 Algoritmos de Ordenação em Tempo Linear Limite Assintótico
Análise de Algoritmos Algoritmos de Ordenação
Análise de Algoritmos Algoritmos de Ordenação Nelson Cruz Sampaio Neto [email protected] Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação 5 de abril de 2016
AULA 13. Algoritmos p.526/582
AULA 13 Algoritmos p.526/582 Ordenação em tempo linear CLRS 8.2 8.3 Algoritmos p.527/582 Ordenação por contagem Recebe vetores A[1.. n] e B[1.. n] e devolve no vetor B[1.. n] os elementos de A[1.. n] em
Quão rápido podemos ordenar? Aula07-LimiteInferiorpara Ordenação. Quão rápido podemos ordenar? Árvore de Decisão- Exemplo. Ordenação em Tempo Linear
Quão rápido podemos ordenar? Aula07-LimiteInferiorpara Ordenação Ordenação em Tempo Linear Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Um algoritmo baseado em comparação para
Limite assintótico para a ordenação, Ordenação em tempo linear
Algoritmos e Estruturas de Dados I Limite assintótico para a ordenação, Ordenação em tempo linear Prof. Jesús P. Mena-Chalco [email protected] 1Q-2017 1 Ordenação Ordenar corresponde ao processo
ALGORITMOS DE ORDENAÇÃO
ALGORITMOS DE ORDENAÇÃO Prof. André Backes Conceitos básicos 2 Ordenação Ato de colocar um conjunto de dados em uma determinada ordem predefinida Fora de ordem 5, 2, 1, 3, 4 Ordenado 1, 2, 3, 4, 5 OU 5,
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
Análise de algoritmos
Análise de algoritmos Recorrências Conteúdo Introdução O método mestre Referências Introdução O tempo de execução de um algoritmo recursivo pode frequentemente ser descrito por uma equação de recorrência.
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)
Busca Binária. Aula 05. Busca em um vetor ordenado. Análise do Busca Binária. Equações com Recorrência
Busca Binária Aula 05 Equações com Recorrência Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Idéia: Divisão e Conquista Busca_Binária(A[l...r],k) 1:if r < lthen 2: index = 1
Análise e Síntese de Algoritmos. Revisão CLRS, Cap. 7-10
Análise e Síntese de Algoritmos Revisão CLRS, Cap. 7-10 Contexto Revisão Algoritmos e complexidade Notação Fundamentos: somatórios, recorrências, etc. Exemplos de algoritmos Ordenação Procura Selecção
Algoritmos de ordenação Heapsort
Algoritmos de ordenação Heapsort Sumário Introdução A estrutura de dados heap Definição Manutenção da propriedade de heap A construção de um heap O algoritmo heapsort Introdução Características do heapsort
Radix Sorting. Várias aplicações têm chaves que são inteiros, definidos dentro de um intervalo
Radix Sorting Os registros a serem ordenados podem ter chaves bastante complexas, como por exemplo sequências de caracteres (lista telefônica) o Ordenação via comparação de chaves Várias aplicações têm
Quick Sort. Considerações Sobre Algoritmos de Ordenação. Estagiário PAE: Jesimar da S. Arantes Professor: ClaudioQuick F. M.
Quick Sort Considerações Sobre Algoritmos de Ordenação Estagiário PAE: Jesimar da S. Arantes Professor: Claudio F. M. Toledo 27 de Setembro de 2017 Estagiário PAE: Jesimar da S. Arantes Professor: ClaudioQuick
Algoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira
Algoritmos e Estrutura de Dados Aula 3 Conceitos Básicos de Algoritmos Prof. Tiago A. E. Ferreira Definição de Algoritmo Informalmente... Um Algoritmo é qualquer procedimento computacional bem definido
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 Manber, Introduction to Algorithms (989) Livro de abril de 08 Conteúdo programático
UNIVERSIDADE FEDERAL DO PIAUÍ COLÉGIO TÉCNICO DE TERESINA-TÉCNICO EM INFORMÁTICA DISCIPLINA: ESTRUTURA DE DADOS PROFESSOR: Valdemir Junior
UNIVERSIDADE FEDERAL DO PIAUÍ COLÉGIO TÉCNICO DE TERESINA-TÉCNICO EM INFORMÁTICA DISCIPLINA: ESTRUTURA DE DADOS PROFESSOR: Valdemir Junior ALGORITMO DE ORDENAÇÃO HEAPSORT Alyson Pereira Barbosa Erisvaldo
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
Pedro Ribeiro 2014/2015
Ordenação Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Ordenação 2014/2015 1 / 35 Ordenação A ordenação é um passo inicial para muitos outros algoritmos Ex: encontrar a mediana Quando não
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]
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
Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 023/2018 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
Análise de algoritmos
Análise de algoritmos Introdução à Ciência de Computação II Baseados nos Slides do Prof. Dr. Thiago A. S. Pardo Análise de algoritmos Existem basicamente 2 formas de estimar o tempo de execução de programas
Mergesort. Aula 04. Algoritmo Mergesort. Divisão e Conquista. Divisão e Conquista- MergeSort
Mergesort Aula 0 Divisão e Conquista- MergeSort Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Mergesort é um algoritmo de ordenação recursivo Ele recursivamente ordena as duas
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
Hashing: conceitos. Hashing
Hashing: conceitos hashing é uma técnica conhecida como espalhamento, mapeamento ou randomização que tenta distribuir dados em posições aleatórias de uma tabela (array) associa cada objeto (de um determinado
Aula 2. Divisão e conquista. Exemplo 1: Número de inversões de uma permutação (problema 2-4 do CLRS; veja também sec 5.4 do KT)
Aula 2 Divisão e conquista Exemplo 1: Número de inversões de uma permutação (problema 2-4 do CLRS; veja também sec 5.4 do KT) Exemplo 2: Par de pontos mais próximos (sec 33.4 do CLRS) Essas transparências
Edital de Seleção 032/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 032/2016 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
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
Ordenação. Insertion Sort
Sumário por trocas de vizinhos. Análise. Limites teóricos Insertion sort. Shellsort recursiva: Mergesort. Análise. Com heap binário: Heapsort. Análise. Divisão e conquista: Quicksort. Análise. Limites
Algoritmos e Estruturas de Dados
Introdução aos Algoritmos e Estruturas de Dados 2 o Teste - A LEIC Alameda, 2007/2008 Data: 12 de Junho de 2008 2 o Semestre Duração: 2h RESOLUÇÃO I. (2.5+2.5 = 5.0 val.) I.a) Suponha que está a trabalhar
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
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
Análise de Algoritmos
Análise de Algoritmos Estes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 1 Introdução CLRS 2.2 e 3.1 AU 3.3, 3.4 e 3.6 Essas transparências foram
Aula 03 Limite assintótico para a ordenação, Ordenação em tempo linear
MC3305 Algoritmos e Estruturas de Dados II Aula 03 Limite assintótico para a ordenação, Ordenação em tempo linear Prof. Jesús P. Mena-Chalco [email protected] 2Q-2015 1 2 Ordenação Ordenar corresponde
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
HeapSort Filas de Prioridade Heap. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
HeapSort Filas de Prioridade Heap David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Filas de Prioridades É uma estrutura de dados onde a chave de cada item reflete sua habilidade relativa de
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
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/
Quick Sort. Considerações Sobre Algoritmos de Ordenação. Estagiário PAE: Jesimar da S. Arantes Professor: Claudio Quick F. M.
Quick Sort Considerações Sobre Algoritmos de Ordenação Professor: Claudio F. M. Toledo 26 de Outubro de 2016 Professor: Claudio Quick F. M. Sort Toledo 26 de Outubro de 2016 1 / 14 Quicksort: Escolha do
Bubble Sort. Tempo total O(n 2 )
Bubble Sort Considere uma seqüência de n elementos que se deseja ordenar. O método da bolha resolve esse problema através de várias passagens sobre a seqüência Não é um algoritmo eficiente, é estudado
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
Ordenação. Prof. Jonas Potros
Ordenação Prof. Jonas Potros Conceitos Básicos Ordenar: processo de rearranjar um conjunto de objetos em uma ordem ascendente ou descendente. A ordenação visa facilitar a recuperação posterior de itens
Quicksort Letícia Rodrigues Bueno
Quicksort Letícia Rodrigues Bueno UFABC Quicksort Legenda: pivô; 1 a partição: ; 2 a partição: Quicksort Legenda: pivô; 1 a partição: ; 2 a partição: Quicksort Legenda: pivô; 1 a partição: ; 2 a partição:
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
Ordenação: Heapsort. Algoritmos e Estruturas de Dados II
Ordenação: Heapsort Algoritmos e Estruturas de Dados II Introdução Possui o mesmo princípio de funcionamento da ordenação por seleção Selecione o menor item do vetor Troque-o pelo item da primeira posição
Aula 13: Ordenação - Heapsort. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP
Aula 13: Ordenação - Heapsort Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Filas de Prioridades É uma estrutura de dados onde a chave de cada item reflete sua habilidade relativa de abandonar
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
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
Hashing Externo. SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri
Hashing Externo SCC-503 Algoritmos e Estruturas de Dados II Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri 1 Hashing 0 1 chave de busca K = LOWELL 2 h(k) endereço 4 (RRN 4) 3 4 5... LOWELL......
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
INF111 Programação II Aulas 11, 12, 13 Ordenação
INF Programação II Aulas,, Ordenação Departamento de Informática UFV Ordenação A ordenação é o processo de organizar um conunto (vetor) de n obetos ou registros segundo uma determinada ordem crescente
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
Algoritmos de ordenação em forma paralela.
ISUTIC 2017 Algoritmos de ordenação em forma paralela. Docente: MSc. Angel Alberto Vazquez Sánchez Bibliografía A. Grama, Introduction to parallel computing. Pearson Education, 2003. I. Foster, Designing
ORDENAÇÃO DE ARQUIVOS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ORDENAÇÃO DE ARQUIVOS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ORDENAÇÃO Busca binária exige que arquivo esteja ordenado Como ordenar um arquivo? INSTITUTO DE COMPUTAÇÃO - UFF 2 MÉTODOS
Divisão e conquista. Eficiência de divisão e conquista
Divisão e conquista Divisão: resolver recursivamente problemas mais pequenos (até caso base) Conquista: solução do problema original é formada com as soluções dos subproblemas á divisão quando o algoritmo
Algoritmos de pesquisa. Tabelas de dispersão/hash
Algoritmos de pesquisa Tabelas de dispersão/hash Introdução Motivação: Considerar o problema de pesquisar um determinado valor num vetor. Se o vetor não está ordenado, a pesquisa requer O(n) de complexidade.
HeapSort. Estrutura de Dados II Jairo Francisco de Souza
HeapSort Estrutura de Dados II Jairo Francisco de Souza HeapSort Algoritmo criado por John Williams (1964) Complexidade O(NlogN) no pior e médio caso Mesmo tendo a mesma complexidade no caso médio que
Lista 1. 8 de abril de Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b.
Lista 1 8 de abril de 2013 1 Exercícios Básicos 1.1 Na bibliografia Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b. 1.2 Outros 1. Projete
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.
Ordenação: QuickSort. Prof. Túlio Toffolo BCC202 Aula 15 Algoritmos e Estruturas de Dados I
Ordenação: QuickSort Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 15 Algoritmos e Estruturas de Dados I QuickSort Proposto por Hoare em 1960 e publicado em 1962. É o algoritmo de ordenação
Métodos de Ordenação Parte I
Estrutura de Dados II Métodos de Ordenação Parte I Prof a Márcio Bueno [email protected] / [email protected] Material baseado nos materiais da Prof a Ana Eliza e Prof. Robson Lins Rearranjar
Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral
SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Listas e árvores Listas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral Diversas aplicações necessitam de estruturas
