5. Algoritmos de Ordenação

Tamanho: px
Começar a partir da página:

Download "5. Algoritmos de Ordenação"

Transcrição

1 Introdução à Computação II Algoritmos de Ordenação Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1

2 Principais Tópicos 5.1. Ordenação por Inserção 5.2. Ordenação por Seleção 5.3. Método da Bolha 5.4. Heapsort 5.5. Quicksort Algoritmo de Partição Ordenação por Quicksort 5.6. Considerações sobre o Problema de Ordenação 5.7. Ordenação em Tempo Linear 2

3 5.5. Quicksort Desenvolvido por C. A. R. Hoare em 1960 É um algoritmo mais rápido que se conhece para diversas categorias de problemas A idéia básica é dividir o problema de ordenação de N registros em dois problemas menores Dividir para conquistar Baseada no fato que as permutações devem ser preferencialmente empregadas para pares de elementos que guardem entre si distâncias grandes, com a finalidade de se conseguir uma maior eficiência 3

4 5.5. Quicksort Por exemplo, se os N registros estão na ordem inversa de suas chaves, é possível ordená-los com apenas N/2 permutações tomando-se primeiramente os elementos das extremidades à direita e à esquerda e convergindo gradualmente para o centro, pelos dois lados Obviamente, isto é possível se os elementos estiverem exatamente na ordem inversa 4

5 5.5. Quicksort Exemplo a

6 5.5. Quicksort Exercício Escreva um algoritmo para inverter a ordem dos elementos de um vetor de N elementos 6

7 5.5. Quicksort Exercício Escreva um algoritmo para inverter a ordem dos elementos de um vetor de N elementos... para i 1 até i N/2 x a[i] a[i] a[n-i+1] a[n-i+1] x fim para... 7

8 Algoritmo de Partição Algoritmo de partição escolha-se arbitrariamente um elemento x do vetor a o vetor é varrido da esquerda para a direita, até que seja encontrado um elemento a[ i ] > x após isso, o vetor é varrido da direita para a esquerda até que seja encontrado um elemento a[ j ] < x nesta ocasião, os dois elementos serão permutados, e este processo de varredura e de permutação continua até que os dois deslocamentos se encontrem em algum ponto intermediário do vetor O resultado desta prática é um vetor particionado, no qual a partição esquerda contém apenas chaves cujos valores são menores (ou iguais) a x e a partição direita, apenas chaves cujos valores são maiores (ou iguais) a x 8

9 Algoritmo de Partição Seja x = Chaves menores ou iguais a x Chaves maiores ou iguais a x 9

10 Algoritmo de Partição... i 1 j N x selecionar um elemento aleatoriamente do vetor a faça { enquanto ( a[ i ] < x ) enquanto ( x < a[ j ] ) j j -1 se ( i j ) w a[ i ] a[ i ] a[ j ] a[ j ] w j j - 1 fim se } enquanto ( i j )... 10

11 Algoritmo de Partição... i 1 j N x selecionar um elemento aleatoriamente do vetor a faça { enquanto ( a[ i ] < x ) enquanto ( x < a[ j ] ) j j -1 se ( i j ) w a[ i ] a[ i ] a[ j ] a[ j ] w j j - 1 fim se } enquanto ( i j ) a Exemplo Partição para x = 43 x = 43 i N = j 11

12 Algoritmo de Partição... i 1 j N x selecionar um elemento aleatoriamente do vetor a faça { enquanto ( a[ i ] < x ) enquanto ( x < a[ j ] ) j j -1 se ( i j ) w a[ i ] a[ i ] a[ j ] a[ j ] w j j - 1 fim se } enquanto ( i j ) a Exemplo Partição para x = 43 x = 43 i N = j 12

13 Algoritmo de Partição... i 1 j N x selecionar um elemento aleatoriamente do vetor a faça { enquanto ( a[ i ] < x ) enquanto ( x < a[ j ] ) j j -1 se ( i j ) w a[ i ] a[ i ] a[ j ] a[ j ] w j j - 1 fim se } enquanto ( i j ) a Exemplo Partição para x = 43 x = 43 i N = j 13

14 Algoritmo de Partição... i 1 j N x selecionar um elemento aleatoriamente do vetor a faça { enquanto ( a[ i ] < x ) enquanto ( x < a[ j ] ) j j -1 se ( i j ) w a[ i ] a[ i ] a[ j ] a[ j ] w j j - 1 fim se } enquanto ( i j ) a Exemplo Partição para x = 43 x = 43 i N = j 14

15 Algoritmo de Partição... i 1 j N x selecionar um elemento aleatoriamente do vetor a faça { enquanto ( a[ i ] < x ) enquanto ( x < a[ j ] ) j j -1 se ( i j ) w a[ i ] a[ i ] a[ j ] a[ j ] w j j - 1 fim se } enquanto ( i j ) a Exemplo Partição para x = 43 x = 43 i N = j 15

16 Algoritmo de Partição... i 1 j N x selecionar um elemento aleatoriamente do vetor a faça { enquanto ( a[ i ] < x ) enquanto ( x < a[ j ] ) j j -1 se ( i j ) w a[ i ] a[ i ] a[ j ] a[ j ] w j j - 1 fim se } enquanto ( i j ) a Exemplo Partição para x = 43 x = 43 N = 8 i j 16

17 Algoritmo de Partição... i 1 j N x selecionar um elemento aleatoriamente do vetor a faça { enquanto ( a[ i ] < x ) enquanto ( x < a[ j ] ) j j -1 se ( i j ) w a[ i ] a[ i ] a[ j ] a[ j ] w j j - 1 fim se } enquanto ( i j ) a Exemplo Partição para x = 43 x = 43 N = 8 i j 17

18 Algoritmo de Partição... i 1 j N x selecionar um elemento aleatoriamente do vetor a faça { enquanto ( a[ i ] < x ) enquanto ( x < a[ j ] ) j j -1 se ( i j ) w a[ i ] a[ i ] a[ j ] a[ j ] w j j - 1 fim se } enquanto ( i j ) a Exemplo Partição para x = 43 x = 43 N = 8 j i

19 Algoritmo de Partição... i 1 j N x selecionar um elemento aleatoriamente do vetor a faça { enquanto ( a[ i ] < x ) enquanto ( x < a[ j ] ) j j -1 se ( i j ) w a[ i ] a[ i ] a[ j ] a[ j ] w j j - 1 fim se } enquanto ( i j ) a Exemplo Partição para x = 43 x = 43 N = 8 j i

20 Algoritmo de Partição... i 1 j N x selecionar um elemento aleatoriamente do vetor a faça { enquanto ( a[ i ] < x ) enquanto ( x < a[ j ] ) j j -1 se ( i j ) w a[ i ] a[ i ] a[ j ] a[ j ] w j j - 1 fim se } enquanto ( i j ) a Exemplo Partição para x = 43 x = 43 N = 8 j i 20

21 Algoritmo de Partição Exemplo Particione o vetor abaixo utilizando o algoritmo descrito para x = 45 x = 56 x = 12 x = 95 x = 19 x = 8 x = 67 a

22 Algoritmo de Partição Exemplo Solução x = 45 a

23 Algoritmo de Partição Exemplo Solução x = 56 a

24 Algoritmo de Partição Exemplo Solução x = 12 a

25 Algoritmo de Partição Exemplo Solução x = 95 a

26 Algoritmo de Partição Exemplo Solução x = 19 a

27 Algoritmo de Partição Exemplo Solução x = 8 a

28 Algoritmo de Partição Exemplo Solução x = 67 a

29 Algoritmo de Partição Exemplo Particione o vetor abaixo utilizando o algoritmo descrito para x = 45 a

30 Algoritmo de Partição Exemplo Solução a

31 Algoritmo de Partição Este algoritmo é bastante direto e eficiente Entretanto no caso das N chaves idênticas são necessárias N/2 permutações Permutações desnecessárias podem ser eliminadas trocando-se os comandos de varredura para enquanto ( a[ i ] x ) enquanto ( x a[ j ] ) j j -1 Neste caso, o elemento escolhido x, que está presente como elemento do vetor, já funcionará como sentinela para as duas varreduras Entretanto, um vetor que possuísse todas as suas chaves idênticas provocaria uma varredura para além da extensão do vetor, a menos que venham a ser utilizadas condições de término mais complexas A simplicidade das condições empregadas no algoritmo certamente compensam uma permutação extra, que dificilmente ocorre de fato na média dos casos reais de aplicação 31

32 Ordenação por Quicksort É necessário lembrar que o objetivo almejado não é só o de encontrar partições do vetor original, mas também ordená-lo Entretanto é simples o passo que leva à ordenação a partir do particionamento após ter sido particionado o vetor, aplica-se o mesmo processo para ambas as partições em seguida, para as partições oriundas de cada uma das partições obtidas e assim por diante, até que todas as partições consistam de apenas um único elemento. 32

33 Ordenação por Quicksort Algoritmo qsort( a[ ], L, R ) i L j R x a [ floor( (L + R ) / 2 ) ] faça { enquanto ( a[ i ] < x ) enquanto ( x < a[ j ] ) j j -1 se ( i j ) w a[ i ] a[ i ] a[ j ] a[ j ] w j j - 1 fim se } enquanto ( i j ) se ( L < j ) qsort( a, L, j ) fim se se ( i < R ) qsort( a, i, R ) fim se Algoritmo quicksort( a[ ], N ) qsort( a, 1, N ) Note que o procedimento qsort utiliza recursão 33

34 Ordenação por Quicksort Algoritmo qsort( a[ ], L, R ) i L j R x a [ floor( (L + R ) / 2 ) ] faça { enquanto ( a[ i ] < x ) enquanto ( x < a[ j ] ) j j -1 se ( i j ) w a[ i ] a[ i ] a[ j ] a[ j ] w j j - 1 fim se } enquanto ( i j ) se ( L < j ) qsort( a, L, j ) fim se se ( i < R ) qsort( a, i, R ) fim se x=43 x=19 x=8 x=56 x=95 a Algoritmo quicksort( a[ ], N ) qsort( a, 1, N ) L R L R L R L L R R 34

35 Ordenação por Quicksort Quick-sort with Hungarian (Küküllőmenti legényes) folk dance IMPORTANTE: O ALGORITMO DEMONSTRADO É UMA VARIAÇÃO DO APRESENTADO AQUI 35

36 Ordenação por Quicksort Admitindo-se que sempre ocorra o melhor caso (o limite escolhido é o ponto médio da partição), então em cada particionamento, o vetor é dividido em duas metades, o que resulta em O(log(N)) divisões, e, assim, a complexidade da ordenação será O(N log(n)) Está complexidade também é válida para o caso médio, já que, em média, as divisões no vetor são equilibradas Quanto ao pior caso, considere, por exemplo, a situação na qual o elemento x de comparação como sendo o maior dos valores de uma partição. Então, em cada passo, um segmento de N elementos será dividido em uma partição esquerda com N-1 elementos e uma partição direita com um único elemento O resultado é que são necessários O(N) (ao invés de O(log(N))) divisões e que o desempenho para o pior caso é O(N 2 ) 36

37 Ordenação por Quicksort Exercício Utilizando ordenação pelo método quicksort, obtenha o número de comparações e movimentações em cada passo (i e j) para os seguintes vetores [ ] [ ] [ ] [ ] 37

38 Exercício Solução Ordenação por Quicksort i j Ci Mi i j Ci Mi i j Ci Mi i j Ci Mi

39 Principais Tópicos 5.1. Ordenação por Inserção 5.2. Ordenação por Seleção 5.3. Método da Bolha 5.4. Heapsort 5.5. Quicksort Algoritmo de Partição Ordenação por Quicksort 5.6. Considerações sobre o Problema de Ordenação 39

40 5.6. Considerações Sobe o Problema de Ordenação Análise dos Algoritmos de Ordenação Considerando os algoritmos de ordenação vistos, a tabela seguinte mostra a ordem de grandeza de números mínimo (C mín ), médio (C med ) e máximo (C max ) de comparações de chaves números mínimo (M mín ), médio (M med ) e máximo (M max ) de movimentos de chaves. Algoritmo C mín C méd C máx M mín M méd M máx Inserção Direta O(N) O(N 2 ) O(N 2 ) O(N) O(N 2 ) O(N 2 ) Inserção Binária O(N*log 2 N) O(N*log 2 N) O(N*log 2 N) O(N) O(N 2 ) O(N 2 ) Seleção Direta O(N 2 ) O(N 2 ) O(N 2 ) O(N) O(N) O(N) Bubblesort O(N 2 ) O(N 2 ) O(N 2 ) O(1) O(N 2 ) O(N 2 ) Shakersort O(N) O(N 2 ) O(N 2 ) O(1) O(N 2 ) O(N 2 ) Heapsort O(N*log 2 N) O(N*log 2 N) O(N*log 2 N) O(N*log 2 N) O(N*log 2 N) O(N*log 2 N) Quicksort O(N*log 2 N) O(N*log 2 N) O(N 2 ) O(N*log 2 N) O(N*log 2 N) O(N 2 ) 40

41 Comparações Quadro Geral: Comparações 5.6. Considerações Sobe o Problema de Ordenação ,56,12,43,95,19,8,67 8,12,19,43,45,56,67,95 95,67,56,45,43,19,12,8 19,12,8,45,43,56,67, Inserção Direta Inserção Binária Seleção Direta Borbulhamento Agitação Shellsort Quicksort Heapsort 41

42 Movimentações Quadro Geral: Movimentações 5.6. Considerações Sobe o Problema de Ordenação ,56,12,43,95,19,8,67 8,12,19,43,45,56,67,95 95,67,56,45,43,19,12,8 19,12,8,45,43,56,67, Inserção Direta Inserção Binária Seleção Direta Borbulhamento Agitação Shellsort Quicksort Heapsort 42

43 5.6. Considerações Sobe o Problema de Ordenação Análise dos Algoritmos de Ordenação [Ziviani, 2004]: Tempo total real para ordenar arranjos de registros (os valores estão normalizados de acordo com o tempo do método que foi mais rápido) Registros em ordem aleatória Inserção Direta 11, Seleção 16, ShellSort 1,2 1,6 1,7 2 Heapsort 1,5 1,6 1,6 1,6 Quicksort Registros em ordem ascendente Inserção Direta Seleção ShellSort 3,9 6,8 7,3 8,1 Heapsort 12,2 20,8 22,4 24,6 Quicksort 4,1 6,3 6,8 7,1 Registros em ordem descendente Inserção Direta 40, Seleção 29, ShellSort 1,5 1,5 1,6 1,6 Heapsort 2,5 2,7 2,7 2,9 Quicksort

44 5.6. Considerações Sobe o Problema de Ordenação Análise dos Algoritmos de Ordenação [Ziviani, 2004], páginas Inserção Interessante para arquivos com menos de 20 elementos Estável Implementação simples Para arquivos ordenados, é O(n) Seleção Números de movimentação é O(n)» Deve ser usado para arquivos com registros grandes (estruturas com muitos elementos), desde que não exceda 1000 elementos 44

45 5.6. Considerações Sobe o Problema de Ordenação Análise dos Algoritmos de Ordenação [Ziviani, 2004], páginas Quicksort É o algoritmo mais eficiente para uma grande variedade de situações É recursivo» Utiliza memória adicional Entretanto, seu desempenho no pior caso é O (n 2 ) 45

46 5.6. Considerações Sobe o Problema de Ordenação Análise dos Algoritmos de Ordenação [Ziviani, 2004], páginas Heapsort Método eficiente, mas cerca de duas vezes mais lento que o Quicksort No entanto, não utiliza memória adicional Tempo proporcional a n log n, qualquer que seja a ordem inicial dos elementos» Aplicações que devem ser executadas em tempo praticamente igual podem utilizar Heapsort 46

47 5.6. Considerações Sobe o Problema de Ordenação Com que Velocidade podemos ordenar para o caso geral? Qualquer algoritmo de ordenação baseado em comparações pode ser visto como uma árvore de decisão, onde os nós internos representam uma comparação de chaves as arestas indicam o resultado do teste (verdadeiro ou falso) e os nós folhas (terminais) representam o resultado final do processo de ordenação 47

48 5.6. Considerações Sobe o Problema de Ordenação Árvore de Decisão (3 elementos) a[1] <= a[2] Sim a[1],a[2],a[3] Não a[2] <= a[3] a[1],a[2],a[3] a[1] <= a[3] a[2],a[1],a[3] Sim Não Sim Não a[1],a[3],a[2] a[2],a[3],a[1] a[1],a[2],a[3] a[1] <= a[3] a[2],a[1],a[3] a[2] <= a[3] Sim Não Sim Não a[1],a[3],a[2] a[3],a[1],a[2] a[2],a[3],a[1] a[3],a[2],a[1] 48

49 5.6. Considerações Sobe o Problema de Ordenação Com que velocidade podemos ordenar para o caso geral? Ordenando N elementos: N! resultados possíveis A árvore deve ter N! folhas Como uma árvore binária de altura h tem, no máximo, 2 h folhas, sabemos que N! 2 h h log 2 (N!) Portanto qualquer árvore de decisões que classifica N elementos distintos tem uma altura mínima log 2 (N!) Sabendo que (pois pelo menos N/2 termos do produto são maiores que N/2) N! = N(N-1)(N-2)...(2)(1) (N/2) N/2 Então log 2 (N!) (N/2)log 2 (N/2) = O(N log 2 N) Ou seja, a melhor complexidade possível, para o caso geral (i.e., para qualquer tipo de chave e com qualquer distribuição de ocorrências) é O( N log 2 N ) 49

Métodos de Ordenação

Métodos de Ordenação Métodos de Ordenação Conceitos básicos sobre ordenação Ordenar corresponde ao processo de rearranjar um conjunto de objetos em uma ordem específica. Objetivo da ordenação: facilitar a recuperação posterior

Leia mais

Estrutura de Dados. Algoritmos de Ordenação. Prof. Othon M. N. Batista Mestre em Informática

Estrutura de Dados. Algoritmos de Ordenação. Prof. Othon M. N. Batista Mestre em Informática Estrutura de Dados Algoritmos de Ordenação Prof. Othon M. N. Batista Mestre em Informática Roteiro Introdução Ordenação por Inserção Insertion Sort Ordenação por Seleção Selection Sort Ordenação por Bolha

Leia mais

Métodos de Ordenação Parte 3

Métodos de Ordenação Parte 3 Estrutura de Dados II Métodos de Ordenação Parte 3 Prof a Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material baseado nos materiais do Prof. Robson Lins Classificação em Memória Primária

Leia mais

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 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)

Leia mais

MÉTODOS DE CLASSIFICAÇÃO EM MEMÓRIA PRIMÁRIA. George Gomes Cabral

MÉTODOS DE CLASSIFICAÇÃO EM MEMÓRIA PRIMÁRIA. George Gomes Cabral MÉTODOS DE CLASSIFICAÇÃO EM MEMÓRIA PRIMÁRIA George Gomes Cabral MÉTODOS DE CLASSIFICAÇÃO EM MEMÓRIA PRIMÁRIA Métodos Elementares Classificação por Trocas Método da Bolha Bubblesort Método de Partição

Leia mais

QuickSort. Estrutura de Dados II Jairo Francisco de Souza

QuickSort. Estrutura de Dados II Jairo Francisco de Souza QuickSort Estrutura de Dados II Jairo Francisco de Souza Particionamento Mecanismo principal dentro do algoritmo do QuickSort Para particionar um determinado conjunto de dados, separamos de um lado todos

Leia mais

Ordenação em Memória Primária Estrutura de Dados II

Ordenação em Memória Primária Estrutura de Dados II - Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Ordenação em Memória Primária Estrutura de Dados II Estrutura de Dados II COM10078-2017-I Prof. Marcelo Otone Aguiar marcelo.aguiar@ufes.br

Leia mais

Quicksort. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Quicksort. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Quicksort David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Quicksort Proposto por Hoare em 1960 e publicado em 1962. É o algoritmo de ordenação interna mais rápido que se conhece para uma ampla

Leia mais

Busca em Memória Primária Estrutura de Dados II

Busca em Memória Primária Estrutura de Dados II Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Busca em Memória Primária Estrutura de Dados II Estrutura de Dados II COM10078 2017-I Prof. Marcelo Otone Aguiar marcelo.aguiar@ufes.br

Leia mais

Estruturas de Dados 2

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

Leia mais

Existem duas categorias de algoritmos de ordenação: Os algoritmos de ordenação são avaliados de acordo com os seguintes critérios:

Existem duas categorias de algoritmos de ordenação: Os algoritmos de ordenação são avaliados de acordo com os seguintes critérios: MÉTODOS DE ORDENAÇÃO E PESQUISA ORDENAÇÃO: consiste em arranjar um conjunto de informações semelhantes numa ordem crescente ou decrescente; PESQUISA: consiste em executar uma pesquisa sobre a estrutura

Leia mais

QuickSort. Algoritmos e Estruturas de Dados Verão Cátia Vaz 1

QuickSort. Algoritmos e Estruturas de Dados Verão Cátia Vaz 1 QuickSort Algoritmos e Estruturas de Dados Verão 2012 1 QuickSort Algoritmo do tipo dividir para conquistar Ideia do algoritmo: efectuar partição dos dados e ordenar as várias partes independentemente

Leia mais

O mais leve e o mais pesado Algoritmos de Ordenação

O mais leve e o mais pesado Algoritmos de Ordenação Atividade 7 O mais leve e o mais pesado Algoritmos de Ordenação Sumário Os computadores são muitas vezes utilizados para colocar listas em algum tipo de ordem, por exemplo, nomes em ordem alfabética, compromissos

Leia mais

INF111 Programação II Aulas 11, 12, 13 Ordenação

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

Leia mais

Quicksort [1] Quicksort [2]

Quicksort [1] Quicksort [2] Quicksort [1] Provavelmente o algoritmo mais usado inventado nos anos 60 muito estudado e analisado desempenho bem conhecido popular devido à facilidade de implementação e eficiência complexidade N log

Leia mais

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 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

Leia mais

Quicksort Letícia Rodrigues Bueno

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:

Leia mais

Complexidade Assintótica de Programas Letícia Rodrigues Bueno

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

Leia mais

Método BubbleSort. Estrutura de Dados II Prof Jairo Francisco de Souza

Método BubbleSort. Estrutura de Dados II Prof Jairo Francisco de Souza Método BubbleSort Estrutura de Dados II Prof Jairo Francisco de Souza Introdução Ordenar corresponde ao processo de reorganizar um conjunto de objetos em uma ordem ascendente ou descendente Consiste em

Leia mais

MC102 - Algoritmos e programação de computadores. Aula 16: Busca e Ordenação em vetores

MC102 - Algoritmos e programação de computadores. Aula 16: Busca e Ordenação em vetores MC102 - Algoritmos e programação de computadores Aula 16: Busca e Ordenação em vetores Busca Dada uma coleção de n elementos, pretende-se saber se um determinado elemento valor está presente nessa coleção.

Leia mais

Algoritmos e Estruturas de Dados II. Ordenação

Algoritmos e Estruturas de Dados II. Ordenação Algoritmos e Estruturas de Dados II Ordenação Antonio Alfredo Ferreira Loureiro loureiro@dcc.ufmg.br http://www.dcc.ufmg.br/~loureiro UFMG/ICEx/DCC Algoritmos e Estruturas de Dados II 1 Sumário Introdução:

Leia mais

Algoritmos e Estruturas de Dados I1 Prof. Eduardo 1

Algoritmos e Estruturas de Dados I1 Prof. Eduardo 1 Algoritmos e Estruturas de Dados I1 Prof. Eduardo 1 ORDENAÇÃO E BUSCA Ordenação: Bublesort, seleção direta e inserção direta. Busca: linear e binária 1 - ORDENAÇÃO (CLASSIFICAÇÃO) DE DADOS Em diversas

Leia mais

Memória secundária. Memória secundária

Memória secundária. Memória secundária introdução ordenação interna ordenação externa ordenar processo de rearranjar um conjunto de itens em uma ordem ascendente ou descendente visa facilitar a recuperação posterior de itens do conjunto ordenado

Leia mais

7. Introdução à Complexidade de Algoritmos

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

Leia mais

Banco de Dados. Métodos de Ordenação de Dados. Prof. Walteno Martins Parreira Jr

Banco de Dados. Métodos de Ordenação de Dados. Prof. Walteno Martins Parreira Jr Banco de Dados Métodos de Ordenação de Dados Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo.com 2015 Ordenação de Dados Ordenação é o ato de se colocar os elementos de

Leia mais

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 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 Árvore digital Árvore digital binária

Leia mais

Universidade da Madeira. 1. Recursão. 3. Busca. Profa. Dra. Laura Rodríguez Estruturas de dados e algoritmos 2

Universidade da Madeira. 1. Recursão. 3. Busca. Profa. Dra. Laura Rodríguez Estruturas de dados e algoritmos 2 Profa. Dra. Laura Rodríguez E-mail: lmrodrig@uma.pt Universidade da Madeira 1. Recursão 2. Ordenação 3. Busca Profa. Dra. Laura Rodríguez Estruturas de dados e algoritmos 2 1 1. Recursão 2. Ordenação 3.

Leia mais

O Problema da Ordenação Métodos de Ordenação Parte 1

O Problema da Ordenação Métodos de Ordenação Parte 1 Métodos de Ordenação Parte 1 SCC-201 Introdução à Ciência da Computação II Rosane Minghim 2010 Ordenação (ou classificação) é largamente utilizada Listas telefônicas e dicionários Grandes sistemas de BD

Leia mais

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Algoritmos de busca Basicamente podem ser citadas duas estratégias para procurar (ou buscar) algo em uma coleção de dados: Busca

Leia mais

Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa

Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa Ordenação Externa Ordenação Externa Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação

Leia mais

Métodos de ordenação. Bubble sort:

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

Leia mais

6. Pesquisa e Ordenação

6. Pesquisa e Ordenação 6. Pesquisa e Ordenação Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 6. Pesquisa e Ordenação Estruturas de Dados 1 / 30 Pesquisa de Informação A pesquisa eficiente de informação

Leia mais

Pesquisa sequencial e pesquisa binária

Pesquisa sequencial e pesquisa binária Pesquisa sequencial e pesquisa binária Armando Matos Departamento de Ciência de Computadores Universidade de Porto 2008 2 problemas importantes... Pesquisa: Procurar um valor numa lista ou, por exemplo,

Leia mais

Análise e Projeto de Algoritmos

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.

Leia mais

Universidade Federal do Espírito Santo

Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Eliezer de Souza da Silva Estudo Comparativo de Algoritmos de Ordenação SÃO MATEUS 2010 Universidade Federal do Espírito Santo Eliezer de Souza da Silva Estudo Comparativo

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 15: Ordenação: ShellSort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes Email: reifortes@iceb.ufop.br

Leia mais

3. Conteúdo de um vértice v é conteúdo dos filhos de v.

3. Conteúdo de um vértice v é conteúdo dos filhos de v. Árvore Hierárquica Em inglês é chamada de Heap. Representar: conjunto C de elementos com relação. Operações: Ins x,c (inserir x em C e ExMax C (extrair o máximo do conjunto). Chamado também de Fila de

Leia mais

Ordenação de Dados (III) HeapSort

Ordenação de Dados (III) HeapSort UFSC-CTC-INE INE53 - Estruturas de Dados Ordenação de Dados (III) Prof. Ronaldo S. Mello 00/ HeapSort HeapSort também é um método de seleção ordena através de sucessivas seleções do elemento correto a

Leia mais

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 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

Leia mais

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 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

Leia mais

INF1007: Programação 2 7 Busca em Vetores. 01/04/2014 (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2 7 Busca em Vetores. 01/04/2014 (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 7 Busca em Vetores 01/04/2014 (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Busca em vetor Busca linear Busca binária 01/04/2014 (c) Dept. Informática - PUC-Rio 2 Busca em

Leia mais

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó

Leia mais

Quantidade de memória necessária

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

Leia mais

PESQUISA EM INFORMÁTICA - COMO ESCREVER UM TEXTO. Prof. Angelo Augusto Frozza, M.Sc.

PESQUISA EM INFORMÁTICA - COMO ESCREVER UM TEXTO. Prof. Angelo Augusto Frozza, M.Sc. PESQUISA EM INFORMÁTICA - COMO ESCREVER UM TEXTO Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza JUSTIFICATIVA A adoção de um método para escrever seus trabalhos ajuda a evitar uma série de

Leia mais

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

Programação de Computadores II. Cap. 17 Busca Programação de Computadores II Cap. 17 Busca Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:

Leia mais

Ordenação em tempo linear

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

Leia mais

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca ÁRVORES SUMÁRIO Fundamentos Árvores Binárias Árvores Binárias de Busca 2 ÁRVORES Utilizadas em muitas aplicações Modelam uma hierarquia entre elementos árvore genealógica Diagrama hierárquico de uma organização

Leia mais

ORDENAÇÃO E BUSCA 1. MÉTODOS DE ORDENAÇÃO

ORDENAÇÃO E BUSCA 1. MÉTODOS DE ORDENAÇÃO ORDENAÇÃO E BUSCA Em computação, freqüentemente, armazenamos dados que, mais tarde, precisam ser recuperados. Como veremos, a eficiência na busca de informações depende, essencialmente, da ordem em que

Leia mais

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 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

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos 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 dbeder@usp.br 08/2008 Material baseado

Leia mais

EDUARDO DA SILVA SARDÃO 0981/00-4 IGOR RODRIGO MACHADO DE MENEZES 1422/98-1 TRABALHO FINAL ÁRVORES B+

EDUARDO DA SILVA SARDÃO 0981/00-4 IGOR RODRIGO MACHADO DE MENEZES 1422/98-1 TRABALHO FINAL ÁRVORES B+ 1 UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA - CIÊNCIA DA COMPUTAÇÃO DEPARTAMENTO DE INFORMÁTICA APLICADA CLASSIFICAÇÃO E PESQUISA DE DADOS INF01124 EDUARDO DA SILVA SARDÃO 0981/00-4

Leia mais

2. Ordenação por Seleção

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

Leia mais

Vença o relógio Redes de Ordenação

Vença o relógio Redes de Ordenação Atividade 8 Vença o relógio Redes de Ordenação Sumário Mesmo os computadores sendo rápidos, há um limite na sua velocidade de resolução de problemas. Uma forma de acelerar as coisas é usar vários computadores

Leia mais

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

Lista de exercícios sobre contagem de operações Prof. João B. Oliveira Lista de exercícios sobre contagem de operações Prof. João B. Oliveira 1. metodo m ( Vetor V ) int i, res = 0; para i de 1 a V.size res = res + V[i]; return res; Soma de elementos de um vetor, O( ). 2.

Leia mais

Complexidade 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

Leia mais

Introdução Métodos de Busca Parte 1

Introdução Métodos de Busca Parte 1 Introdução Métodos de Busca Parte 1 SCC-201 Introdução à Ciência da Computação II Rosane Minghim 2009 Importância em estudar busca Busca é uma tarefa muito comum em computação? Vários métodos e estruturas

Leia mais

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. 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

Leia mais

Simulador didático de testes de algoritmos de ordenaçã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:

Leia mais

Ordenação de Vectores

Ordenação de Vectores 4. Vectores: Algoritmos de Ordenação João Pascoal Faria (versão original) Ana Paula Rocha (versão 2004/2005) Luís Paulo Reis (versão 2005/2006) FEUP - MIEEC Prog 2-2006/2007 Ordenação de Vectores Problema

Leia mais

Árvores B Parte III. Propriedades, Remoção & Inserção Revisitada. Adaptado e Estendido dos Originais de:

Árvores B Parte III. Propriedades, Remoção & Inserção Revisitada. Adaptado e Estendido dos Originais de: Estruturas de Dados Prof. Ricardo J. G. B. Campello Árvores B Parte III Propriedades, Remoção & Inserção Revisitada Adaptado e Estendido dos Originais de: Leandro C. Cintra Maria Cristina F. de Oliveira

Leia mais

Aprendendo a Programar Programando numa Linguagem Algorítmica Executável (ILA)

Aprendendo a Programar Programando numa Linguagem Algorítmica Executável (ILA) Jaime Evaristo Sérgio Crespo Aprendendo a Programar Programando numa Linguagem Algorítmica Executável (ILA) Segunda Edição Capítulo 7 Versão 13052010 7. Pesquisa e Ordenação 7.1 Introdução Embora os problemas

Leia mais

Programação II. Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio

Programação II. Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio Programação II Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio Árvores Dados organizados de maneira hierárquica Exemplos: arquivos em diretórios, subdivisão de espaço 2D em um

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 14: Ordenação: QuickSort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes Email: reifortes@iceb.ufop.br

Leia mais

DAINF - Departamento de Informática

DAINF - Departamento de Informática DAINF - Departamento de Informática Algoritmos 2 - Árvore binária de busca Prof. Alex Kutzke ( http://alex.kutzke.com.br/courses ) 30 de Novembro de 2015 Slides adaptados do material produzido pelo Prof.

Leia mais

Introdução à Análise de Algoritmos

Introdução à Análise de Algoritmos Quanto tempo leva a execução de determinado algoritmo? Quando temos dois algoritmos que fazem a mesma coisa, qual deles leva menos tempo? A análise do algoritmo preocupa-se com as questões acima. É sempre

Leia mais

Algoritimos e Estruturas de Dados III CIC210

Algoritimos e Estruturas de Dados III CIC210 Algoritimos e Estruturas de Dados III CIC210 Divisão e Conquista Haroldo Gambini Santos Concurso Universidade Federal de Ouro Preto - UFOP 3 de setembro de 2009 Haroldo Gambini Santos Divisão e Conquista

Leia mais

Aula 19 Conjuntos disjuntos (Union-find)

Aula 19 Conjuntos disjuntos (Union-find) MC3305 Algoritmos e Estruturas de Dados II Aula 19 Conjuntos disjuntos (Union-find) Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 2Q-2015 1 Números de Ackermann 2 3 Ackermann A função de Ackermann

Leia mais

O conjunto de registros pode ser: Um vetor de registros Uma lista encadeada Uma árvore Etc.

O conjunto de registros pode ser: Um vetor de registros Uma lista encadeada Uma árvore Etc. Método de Busca O problema da busca (ou pesquisa) - Dado um conjunto de elementos, onde cada um é identificado por uma chave, o objetivo da busca é localizar, nesse conjunto, o elemento que corresponde

Leia mais

Algoritmos de Ordenação e Pesquisa. Marco Antonio Moreira de Carvalho Algoritmos e Estrutura de Dados

Algoritmos de Ordenação e Pesquisa. Marco Antonio Moreira de Carvalho Algoritmos e Estrutura de Dados Algoritmos de Ordenação e Pesquisa Marco Antonio Moreira de Carvalho Algoritmos e Estrutura de Dados Bibliografia Básica l Cormen, Leiserson, Rivest. Introduction to Algorithms. 2nd edition. MIT Press,

Leia mais

Capítulo 14. Ordenação e pesquisa. Bubblesort. Alguns algoritmos de ordenação e pesquisa Medição do tempo de execução de um programa

Capítulo 14. Ordenação e pesquisa. Bubblesort. Alguns algoritmos de ordenação e pesquisa Medição do tempo de execução de um programa Capítulo Ordenação e pesquisa Alguns algoritmos de ordenação e pesquisa Medição do tempo de execução de um programa Bubblesort Identifica os pares de elementos contíguos que não estão na ordem correcta

Leia mais

QuickSort CI/2015. Análise e Projeto de Algoritmos. - Prof. Lucídio A. F. Cabral

QuickSort CI/2015. Análise e Projeto de Algoritmos. - Prof. Lucídio A. F. Cabral QuickSort 1 Quicksort A[p q] A[q+1 r] Ordena um vetor A[p r] Divisão Particiona um vetor A em 2 subvetores A[p..q] e A[q+1..r], de tal modo que cada elemento de A[p..q] seja menor ou igual a cada elemento

Leia mais

Projeto de Algoritmos e Indução Matemática

Projeto de Algoritmos e Indução Matemática Capítulo 3 Projeto de Algoritmos e Indução Matemática Um algoritmo é uma descrição precisa de um método para a resolução de determinado problema. Este capítulo apresenta a relação entre a prova de teoremas

Leia mais

FACULDADE DE IMPERATRIZ - FACIMP BACHARELADO EM SISTEMAS DE INFORMAÇÃO ESTRUTURA DE DADOS 2. Vieira Lima Junior. Everson Santos Araujo

FACULDADE DE IMPERATRIZ - FACIMP BACHARELADO EM SISTEMAS DE INFORMAÇÃO ESTRUTURA DE DADOS 2. Vieira Lima Junior. Everson Santos Araujo 1 FACULDADE DE IMPERATRIZ - FACIMP BACHARELADO EM SISTEMAS DE INFORMAÇÃO ESTRUTURA DE DADOS 2 Vieira Lima Junior Everson Santos Araujo ALGORITMOS DE ORDENAÇÃO: estudo comparativo de diversos algoritmos

Leia mais

Linguagem Haskell. Maria Adriana Vidigal de Lima

Linguagem Haskell. Maria Adriana Vidigal de Lima de Valores em Haskell Linguagem Haskell Faculdade de Computação - UFU Dezembro - 2009 de Valores em Haskell 1 de Valores em Haskell Técnicas de por Seleção por Inserção Rápida por Bolha de Valores em Haskell

Leia mais

Métodos de Pesquisa de Dados (II) Árvore N-ária de Pesquisa

Métodos de Pesquisa de Dados (II) Árvore N-ária de Pesquisa UFSC-CTC-INE INE5384 - Estruturas de Dados Métodos de Pesquisa de Dados (II) Prof. Ronaldo S. Mello 2002/2 Árvore N-ária de Pesquisa Uma Árvore N-ária de Pesquisa (ANP) é uma árvore que: contém m subárvores

Leia mais

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 17 - Busca 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais

Medida do Tempo de Execução de um Programa. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Medida do Tempo de Execução de um Programa. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Medida do Tempo de Execução de um Programa Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo estudo

Leia mais

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. 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

Leia mais

Arquivos Sequenciais Ordenados Fisicamente

Arquivos Sequenciais Ordenados Fisicamente Arquivos Sequenciais Ordenados Fisicamente Estrutura de Dados II Aula 05 UFS - DComp Adaptados a partir do material da Profa. Kenia Kodel Cox Arquivos Sequenciais Podem ser: 1. Desordenados 2. Ordenados,

Leia mais

Teoria dos Grafos Aula 24

Teoria dos Grafos Aula 24 Teoria dos Grafos Aula 24 Aula passada Caminho mais curto entre todos os pares Algortimo de Floyd Warshall Programação dinâmica Aula de hoje Caminho mais curto em grafos Algoritmo de Bellman Ford Algoritmo

Leia mais

Algoritmos. para concursos. Questões comentadas

Algoritmos. para concursos. Questões comentadas Algoritmos para concursos Questões comentadas Prefácio Um algoritmo é um conjunto de operações em sequência para resolver determinado problema. A noção de algoritmo é extremamente importante para a computação.

Leia mais

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 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

Leia mais

Estruturas de Dados 2

Estruturas de Dados 2 Estruturas de Dados 2 Recorrências IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/31 Recorrências Análise da Eficiência de Algoritmos: Velocidade de Execução; Análise

Leia mais

Aula 3 Listas Lineares Sequenciais Ordenadas. prof Leticia Winkler

Aula 3 Listas Lineares Sequenciais Ordenadas. prof Leticia Winkler Aula 3 Listas Lineares Sequenciais Ordenadas prof Leticia Winkler 1 Listas Lineares Sequenciais Ordenadas Elementos da lista estão dispostos num vetor (contíguos na memória) e ordenado de acordo com alguma

Leia mais

Algoritmos de Pesquisa e Ordenação em Vectores

Algoritmos de Pesquisa e Ordenação em Vectores Algoritmos de Pesquisa e Ordenação em Vectores FEUP - MIEEC Programação 2-2008/2009 Pesquisa Sequencial Problema (pesquisa de valor em vector): Verificar se um valor existe no vector e, no caso de existir,

Leia mais

Método de ordenação - objetivos:

Método de ordenação - objetivos: Método de ordenação - objetivos: Corresponde ao processo de rearranjar um conjunto de objetos em uma ordem ascendente ou descendente. Facilitar a recuperação posterior de itens do conjunto ordenado. São

Leia mais

ESTRUTURA DE DADOS (TCC )

ESTRUTURA DE DADOS (TCC ) ESTRUTURA DE DADOS (TCC-00.319) Listas lineares Cristina Boeres 2 Estrutura de Dados! Listas lineares! estática! dinâmicas! Como manipulá-las:! pilhas! filas Listas Lineares 3! fácil manipulação! agrupa

Leia mais

Teoria da Computação. Aula 9 Pesquisa em Memória Secundária 5COP096. Aula 9 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Teoria da Computação. Aula 9 Pesquisa em Memória Secundária 5COP096. Aula 9 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr 5COP096 Teoria da Computação Aula 9 Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr barbon@uel.br 1 Sumário 1) Introdução à Pesquisa em Memória Secundária 2) Modelo de Computação para Memória Secundária

Leia mais

Listas de Prioridade. Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC.

Listas de Prioridade. Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Listas de Prioridade Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Capítulo 6 Prioridade } Algumas aplicações precisam recuperar rapidamente um dado

Leia mais

Algoritmos de Ordenação

Algoritmos de Ordenação CENTRO DE CIÊNCIAS EXATAS DEPARTAMENTO DE COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Algoritmos de Ordenação Alunos: André Ricardo Gonçalves Luiz Gustavo Andrade dos Santos Paulo Roberto Silla Profa. Linnyer Beatrys

Leia mais

Teoria dos Grafos Aula 8

Teoria dos Grafos Aula 8 Teoria dos Grafos Aula 8 Aula passada Classe de funções e notação Propriedades da notação Funções usuais Aula de hoje Grafos direcionados Busca em grafos direcionados Ordenação topológica Tempo de execução

Leia mais

Tópicos Avançados em Algoritmos

Tópicos Avançados em Algoritmos Tópicos Avançados em Algoritmos Armando Matos 2008 Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto 2 Tópicos Avançados de Algoritmos Armando B. Matos DCC-FC-UP 2009

Leia mais

Definição. Árvores B Parte III. Propriedades Gerais. Propriedade (No. Mín. de Chaves) Leandro C. Cintra Maria Cristina F.

Definição. Árvores B Parte III. Propriedades Gerais. Propriedade (No. Mín. de Chaves) Leandro C. Cintra Maria Cristina F. Algoritmos e Estruturas de Dados II Prof. Ricardo J. G. B. Campello Árvores B Parte III Eliminação, Redistribuição & Concatenação Adaptado e Estendido dos Originais de: Leandro C. Cintra Maria Cristina

Leia mais

Estruturas de Dados 2

Estruturas de Dados 2 Estruturas de Dados 2 Análise Empírica de Algoritmos IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/13 Análise da Eficiência de Algoritmos: Velocidade de Execução;

Leia mais

Mergesort. Aula 04. Algoritmo Mergesort. Divisão e Conquista. Divisão e Conquista- MergeSort

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

Leia mais

Sistemas Distribuídos: Princípios e Algoritmos Introdução à Análise de Complexidade de Algoritmos

Sistemas Distribuídos: Princípios e Algoritmos Introdução à Análise de Complexidade de Algoritmos Sistemas Distribuídos: Princípios e Algoritmos Introdução à Análise de Complexidade de Algoritmos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática

Leia mais

3 Plano de Execução de Consultas

3 Plano de Execução de Consultas Sumário 1 Introdução ao Processamento de Consultas 2 Otimização de Consultas 3 Plano de Execução de Consultas 4 Introdução a Transações 5 Recuperação de Falhas 6 Controle de Concorrência 7 Fundamentos

Leia mais

Divisão e Conquista. Norton T. Roman. Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder

Divisão e Conquista. Norton T. Roman. Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder Divisão e Conquista Norton T. Roman Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder Divisão e Conquista Construção incremental Ex: Consiste em, inicialmente, resolver

Leia mais

Análise de Algoritmos

Análise de Algoritmos Análise de Algoritmos Parte 1 Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 04 Algoritmos e Estruturas de Dados I Qual a diferença entre um algoritmo e um programa? Como escolher o algoritmo

Leia mais

Hashing: conceitos. Hashing

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

Leia mais