Berilhes Borges Garcia Algoritmos Uma ferramenta para resolver um problema de computação bem- especificado (O espírito da computação) Exemplo: ordenação.

Slides:



Advertisements
Apresentações semelhantes
Introdução a Algoritmos
Advertisements

Estruturas de Dados e Algoritmos II
Organização de Computadores I
Analise de Algoritmos e Notação Assintótica
Exercício Exercício. Considere um algoritmo sequencial que busca um elemento em uma lista não ordenada a) Qual é a complexidade de tempo deste algoritmo.
Algoritmos de Ordenação
Engenharia de Computação.
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
Geometria Computacional Interseção de Segmentos
Pesquisa em Memória Primária
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Pesquisa em Memória Primária
David Menotti Estruturas de Dados I DECOM – UFOP
FACENS – Engenharia da Computação Lógica Computacional II
INTRODUÇÃO À PROGRAMAÇÃO
Dividir-e-Conquistar
Análise Léxica Supondo o trecho de programa abaixo:
Crescimento de Funções
Complexidade de Computação Para avaliar a qualidade de um algoritmo usamos como critério o espaço e o tempo de execução. Ao.
Complexidade de Algoritmos
TRABALHO EM EQUIPE E TRABALHO EM GRUPO
Aula T04 – BCC202 Análise de Algoritmos (Parte 2) Túlio Toffolo www
Algoritmos de Ordenação
Insertion Sort.
Complexidade de Algoritmos
Informática Teórica Engenharia da Computação
Algoritmos de Ordenação 4
ICC2 Aula 7 Fábio Nakano.
Comparação entre os métodos de ordenação
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Ordenação por inserção
Introdução a Programação
Aula T06 – BCC202 Análise de Algoritmos (Parte 4) Túlio Toffolo
Estruturas de Dados, Algoritmos e Complexidade
Algoritmos Crescimento de Funções
Algoritmos de Ordenação
Campus de Caraguatatuba Licenciatura em Matemática Semestre de 2013
QuickSort Dividir: A[p…r] é particionado (reorganizado) em dois subvetores não vazios A[p…q] e A[q+1…r] tal que cada elemento de A[p…q] é menor ou igual.
SISTEMAS OPERACIONAIS I
Experimentação Algorítmica
DCC 001 Programação de Computadores
Introdução à complexidade de algoritmos Luiz Gonzaga da Silveira Junior.
Complexidade em Tempo de um Algoritmo
Componentes de um Sistema de Computação
Como analisar um algoritmo
Crescimento de Funções
DCC 001 Programação de Computadores 2º Semestre de 2011
Complexidade de Computação Katia Guimarães. Avaliando a Qualidade de um Algoritmo É preciso ter bem definido –O que é dado de entrada e –O que é esperado.
Analise de Algoritmos e Notação Assintótica
ATAL – Prof. Jorge Figueiredo Ordenação AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação.
Estruturas de Dados, Algoritmos e Complexidade Katia Guimarães.
Algoritmo e Estrutura de Dados I Introdução ao conceito de algoritmo Márcia Marra
Métodos de Ordenação Externa
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 01 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
ORDENAÇÃO EM TEMPO LINEAR
Ordenação (Sorting) Ordenar é dispor os elementos de um conjunto numa ordem ascendente ou descendente. Problema: Dados n números, arranjá-los em ordem.
Análise e Complexidade de Algoritmos
Curso Programadores de Informática
Campus Pau dos Ferros Disciplina de Algoritmos Prof. Demétrios Coutinho INFORMÁTICA BÁSICA Algoritmos de Ordenação.
Técnicas de Análise de Algoritmos Cristiano Arbex Valle Vinicius Fernandes dos Santos
Comportamento Assintótico
Disciplina: Estrutura de dados e Algoritmos Docentes: MSc. Manuel Zunguze.
Transcrição da apresentação:

Berilhes Borges Garcia Algoritmos Uma ferramenta para resolver um problema de computação bem- especificado (O espírito da computação) Exemplo: ordenação entrada: Uma seqüência de números saída: Uma permutação ordenada da entrada questões: correção, eficiência, armazenagem, etc. AlgoritmoEntrada Saída

Berilhes Borges Garcia Analisando Algoritmos Suposições –um único processador genérico, máquina de acesso aleatório –tempo de execução (outros: memória, comunicação, etc) Tempo de Execução no Pior Caso: o tempo mais longo para qualquer entrada de tamanho n –limite superior sobre o tempo de execução para qualquer entrada –em alguns casos como pesquisa, este é próximo Comportamento no Caso Médio: o desempenho médio esperado sobre todas as entradas possíveis –Este geralmente é melhor que o comportamento no pior caso –algumas vezes este é quase igual ao pior caso

Berilhes Borges Garcia Um exemplo simples Entrada: uma sequência de n números Saída: o menor número entre eles 1. x  T[1] 2. for i  2 to n do 3. if T[i] < x then x  T[i] * Desempenho deste algoritmo é uma função de n.

Berilhes Borges Garcia Análise do Tempo de Execução Operações elementares: uma operação cujo tempo de execução pode ser limitado por uma constante dependendo da implementação utilizada. Assuma que todas as operações elementares possam ser executadas em uma unidade de custo. Isto não é verdade, mas elas estão dentro de algum fator constante. Nós estamos principalmente preocupados com a ordem de crescimento.

Berilhes Borges Garcia Ordem de Crescimento Para tamanho de entrada muito grandes, é a razão de crescimento, ou ordem de crescimento que comporta- se assintoticamente. Nós podemos ignorar os termos de ordem mais baixa, uma vez que eles são relativamente insignificantes para n muito grande. Nós podemos também ignorar coeficientes dos termo líder, já que eles não são tão importantes para a razão de crescimento em eficiência computacional para n muito grande. Funções de ordem mais alta n são normalmente consideradas menos eficientes.

Berilhes Borges Garcia Comparações entre Algoritmos Ordenação –insertion sort:  ( n 2 ) –merge sort:  ( n log n ) Para 10 6 números, o primeiro leva 5.56 horas em um supercomputador utilizando linguagem de máquina, e o segundo min em um PC utilizando C/C++.

Berilhes Borges Garcia Um novo exemplo Bubble-sort (A) 1. for i  2 to length[A] - 1 do 2. for j  1 to length[A] - i do 3. if A[j] > A[j+1] then 4.Swap A[j] com A[j+1]