Análise e Comparação de Algoritmos Implementados em Java

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

Download "Análise e Comparação de Algoritmos Implementados em Java"

Transcrição

1 Análise e Comparação de Algoritmos Implementados em Java Jonathan S. Nascimento 1, Patricia M. Mozzaquatro 1, Rodrigo L. Antoniazzi 1 1 Departamento de Ciência da Computação Universidade de Cruz Alta (UNICRUZ) Cruz Alta, RS Brazil {jonathanjsn, patriciamozzaquatro}@gmail.com, rantoniazzi@unicruz.edu.br Abstract. This article aims to show comparison tests between sorting algorithms on lists of increasing, decreasing and random order, analyzing the performance of each of them. By means of tables is shown the amount of comparisons and outgoing exchange, and display the execution time of each method. The algorithms used are the bubblesort, insertionsort, combsort and shellsort, all implemented in the Java language. Resumo. Este artigo tem por finalidade demonstrar testes de comparação entre algoritmos de ordenação sobre listas de ordem crescente, decrescente e aleatória, analisando a performance sobre cada uma delas. Por meio de tabelas será demonstrado a quantidade de comparações e trocas efetuadas, além de exibir o tempo de execução de cada método. Os algoritmos utilizados serão o bubblesort, insertionsort, combsort e shellsort, todos implementados na linguagem java. 1. Introdução A ordenação consiste em arranjar os elementos de um conjunto de modo a facilitar a posterior recuperação ou análise dos dados. Por ser tão importante a ordenação é uma das atividades mais utilizadas na computação (BITENCOURT, 2014). Existem várias maneiras de implementar um algoritmo de ordenação, mas há um porém quanto a necessidade de uso de cada um. Cada algoritmo resolve um problema comum que é a ordenação, mas como cada um se comporta de uma maneira diferente devemos entender como funciona cada um para que saibamos qual usar para resolver determinado problema. O uso deles nos permite resolver um problema de forma dinâmica, ou seja, após implementado um algoritmo para ordenar um vetor em ordem crescente por exemplo, ele deverá ser funcional a qualquer vetor independentemente da quantidade de valores ou da forma em que esses valores estão dispostos na situação inicial em que se encontram no vetor. Para testar se um método é eficaz, utilizaremos dois tipos de avaliações sobre os resultados finais comparando os algoritmos. A avaliação empírica, no qual é medido o tempo de execução de cada método, e a avaliação assintótica, que calcula o número de trocas realizadas para a ordenação, no qual será avaliado o desempenho dele. O resultado da análise empírica dependerá da linguagem de programação, e da capacidade de processamento da máquina utilizada, enquanto da assintótica depende mais da lógica de como foi implementado. Será usado uma lista de elementos inteiros de 1.000, e posições para cada método que será testado ordenados aleatoriamente. Neste

2 artigo apresentaremos os algoritmos de ordenação BubbleSort, CombSort, InsertSort e ShellSort. 2. Métodos de Ordenação Os métodos de ordenação são classificados em dois grandes grupos: ordenação interna e externa. 1. Ordenação Interna: São os métodos que não necessitam de uma memória secundária para o processo, a ordenação é feita na memória principal do computador; 2. Ordenação Externa: Quando o arquivo a ser ordenado não cabe na memória principal e, por isso, tem de ser armazenado em fita ou disco. A principal diferença entre os dois grupos é que no método de ordenação interna qualquer registro pode ser acessado diretamente, enquanto no método externo é necessário fazer o acesso em blocos (OLIVEIRA, 2002). Neste artigo falaremos apenas sobre os métodos de ordenação interna. 2.1 Métodos de Ordenação Interna Durante a escolha de um algoritmo de ordenação, deve-se observar um aspecto importante: o tempo gasto durante a sua execução. Para algoritmos de ordenação interna, as medidas de complexidade relevantes contam o número de comparações entre as chaves e o número de movimentações de itens do arquivo (ZIVIANI, 2007). Outra medida que pesa na escolha é a quantidade de memória extra utilizada pelo algoritmo. Métodos que realizam a permutação dos elementos no próprio vetor são chamados in situ, esses métodos são os preferidos. Os métodos que necessitam de memória extra para armazenar outra cópia dos itens possuem menor importância (ZIVIANI, 2007) Bubble Sort O método de ordenação bubble sort usa uma estratégia de comparação e troca, que pode ser aplicada em vários vetores a ser ordenados (OLIVEIRA, 2002). O Bubble Sort é o tipo mais antigo e mais simples usado para ordenações. Ele funciona comparando cada item da lista com o item do lado dele, e efetua a troca se o valor na posição que está sendo analisada for maior que o da posição após a dele. O algoritmo repete este processo até passar por todas as posições da lista. Isto faz com que os valores maiores flutuem para o final da lista, enquanto os valores menores afundem para o início da lista. Este método tem o pior caso medido por O(n²), onde n é o número de elementos do vetor. Mesmo outros métodos como o insertion sort que tem pior caso denominado por O(n²), tendem a ter melhor desempenho que o método bolha. Vantagens: é um algoritmo de fácil implementação, algoritmo estável. Limitações: O fato de o arquivo estar ordenado não ajuda em nada, ordem de complexidade quadrática (MENNOTI, 2008).

3 2.3. Comb Sort A idéia básica é a de eliminar as tartarugas, que são valores pequenos perto do final da lista, uma vez que no método Bubble Sort é isso que causa a lentidão na ordenação. Enquanto coelhos que são grandes valores ao redor do início da lista, não representam um problema em bubble sort (BREJOVÁ, 2001). Em Bubble Sort, quando quaisquer dois elementos são comparados, eles sempre têm um gap (distância um do outro) de 1. A idéia básica do tipo pente é que a diferença pode ser muito mais do que 1 (Shell espécie também é baseado nesta idéia, mas é uma modificação do tipo de inserção, em vez de Bubble Sort). Em outras palavras, o circuito interno de Bubble Sort, que faz a troca real, é modificado de tal modo que o gap entre elementos trocados vá diminuindo (para cada iteração do loop externo) em etapa pelo fator de contração. ou seja, [tamanho de entrada / fator encolhimento]. Ao contrário de bubble sort, onde a diferença é constante ou seja, 1 (BREJOVÁ, 2001). O fator de encolhimento, ou gap, tem um grande efeito sobre a eficiência do método. No artigo original, os autores sugerem 1.3. Um valor muito pequeno retarda a eficiência do algoritmo porque mais comparações devem ser feitas, enquanto que um valor demasiado grande impediria que algumas comparações fossem feitas. Impiricamente falando, (testando Combsort em mais de listas aleatórias) o fator de contração de 1,3 seria o melhor (BREJOVÁ, 2001) Insertion Sort Dentre os métodos de inserção, o método da Inserção Direta é o mais simples, porém, é o mais rápido, entre os outros métodos considerados básicos Bubble Sort e Selection Sort (PASSARO, 2006). Neste algoritmo, o próprio vetor é utilizado no processo de ordenação, não consumindo, portanto, memória para a separação dos segmentos do vetor, consome-se um pouco de memória somente para o armazenamento de variáveis auxiliares (PASSARO, 2006). Todavia, a eficácia do método de inserção está intrinsecam ente ligada a uma adequação aos seguintes fatores: o número de registros a serem classificados; se todos os registros caberão ou não na memória interna disponível; e o grau de classificação já existente; No entanto, a ordenação por inserção tem duas vantagens. Primeiro, ela se comporta naturalmente, ou seja, trabalha menos quando a matriz já está ordenada e o máximo quando a matriz está ordenada no sentido inverso. Isso torna a ordenação por inserção excelente para listas que estão quase em ordem. A segunda vantagem é que ela não rearranja elementos de mesma chave. Isso significa que um vetor que é ordenado por duas chaves permanece ordenado por ambas as chaves após uma ordenação por inserção (CCET-VIRTUAL, 2006). Quanto a seu funcionamento, conceitualmente o método da inserção pode ser entendido como a classificação de um conjunto de registros que é feita inserindo registros num sub-arquivo classificado anteriormente, ou seja, a inserção de um elemento é feita na posição correta dentro de um sub-arquivo classificado [...] (CEFETPB, 2006), ou ainda [...] Os elementos são conceitualmente divididos em uma seqüência destino

4 A1...A i-1 e uma seqüência fonte Ai...An. Em cada passo, iniciando-se com i=2 e incrementando-se i de uma em uma unidade, o i-ésimo elemento da seqüência vai sendo retirado e transferido para a seqüência destino, e inserido na posição apropriada [...] (WIRTH, 1999) e [...]... o vetor C é dividido em dois segmentos. Inicialmente, o primeiro segmento contém apenas o primeiro elemento, estando, portanto, classificado, enquanto o segundo segmento contém os elementos C[2], C[3],...C[n], sendo n o número de elementos do vetor. Por meio de iterações sucessivas cada elemento do segundo segmento é inserido ordenadamente no primeiro, até que todos os sejam (VELOSO, 1983). Vantagens: É um algoritmo de fácil implementação, algoritmo estável, o vetor já ordenado favorece a ordenação. Limitações: Número grande de movimentações, ordem de complexidade quadrática, ineficiente quando o vetor está ordenado inversamente (MENNOTI, 2008) Shell Sort Shell Sort, é uma comparação do tipo in-place. Ele pode ser visto tanto como uma generalização da classificação por troca (Bubble Sort) ou a classificação por inserção (ordenação por inserção) (KNUTH, 1997). O método de ordenação Shell Sort contorna o problema método de inserção de encontrar seu ponto de inserção, permitindo trocas de registros que estão distantes um do outro. Os itens que estão separados h posições e são rearranjados de tal forma que todo h-ésimo item leva a uma sequência ordenada. O valor de h pode ser estipulado para uma determinada implementação, somente não podem ser utilizados valores múltiplos, sob pena de perda de performance. Tal sequência é dita estar ordenada. Para a sequência de incrementos utilizada no algoritmo existem duas conjecturas para o número de comparações: C (n) = O (n1,25) e C(n) = O(n (ln n)2), e isto ainda não foi determinada, segundo Ziviani (2002, p.77) por ter alguns problemas matemáticos complexos. O método começa classificando pares de elementos distantes um do outro, em seguida, reduzindo progressivamente a diferença entre elementos para ser comparados. Começando com distantes elementos pode mover alguns elementos fora de lugar na posição mais rápido do que uma simples troca de vizinho mais próximo (SHELL, 1959). Donald Shell publicou a primeira versão deste tipo em Vantagens: O algoritmo tem o código simples, interessante para arquivos de tamanho moderado. Limitações: Algoritmo não estável, tempo de execução sensível à ordem inicial do arquivo (MENNOTI, 2008). 3. Desenvolvimento O programa foi desenvolvido com a finalidade de realizar uma análise empírica e assintótica de algoritmos de ordenação. Para que fosse possível obter uma melhor visualização das comparações dos resultados, foi criada uma interface gráfica conforme mostra a Figura 1.

5 Figura 1. Tela de análise dos algoritmos. Em sua primeira etapa, o usuário deve preencher os itens tamanho e variedade do vetor a ser gerado, inserindo além disso o tipo da ordenação inicial deste vetor, seja ela crescente, decrescente ou aleatória. Após ser gerado, será criado um arquivo com a extensão.txt contendo os números na ordem em que foi selecionado, podendo o usuário visualizar estes números na tela do programa. A segunda etapa é escolher qual método será utilizado para ordenar este vetor. Assim que é realizada a escolha do método o programa demonstrando a quantidade de comparações, trocas e o tempo de execução que o método utilizou para esta ordenação, demonstrado na Figura 2. Figura 2. Resultado da análise

6 4. Resultados Os métodos foram testados em um computador com processador AMD FX (tm)-8320 Eight-Core 3.50 Ghz, com 4 GB de memória RAM. Foi gerado um vetor de ordem crescente, decrescente e aleatório para cada uma das listas de 1.000, , e posições, na qual foram testadas com cada método, registrando o número de comparações, trocas e tempo total de execução. Para os vetores de ordem crescentes e decrescentes, a lista usada e a variedade de elementos foram referentes ao tamanho do vetor. Para vetor de tamanho 1.000, começando pelo elemento 1 (um) até o (mil) e assim por diante para as outras listas. Para o vetor aleatório foi utilizado um método randômico, utilizando a classe java.util.random, sendo que essas listas que foram geradas, foram armazenadas para serem usadas com todos os métodos, para garantir maior precisão nos resultados. 4.1 Vetor de ordem crescente A Tabela, apresenta o número de comparações e trocas relacionadas a cada método, utilizando o conceito de análise assintótica. Enquanto a Tabela 2 mostra o tempo total de execução para a ordenação da lista, analisado empiricamente. O tempo foi mostrado através do método System.currentTimeMillis() do Java armazenado em uma variável long convertida para segundos. Tabela 1. Comparações e trocas, com vetor de ordem crescente. Tabela 2. Comparação de tempo entre métodos, com vetor de ordem crescente. Baseado nas tabelas acima, percebe-se que o Insertion Sort foi o que menos fez comparações, e o Bubble Sort teve o maior índice de comparações. O único a demonstrar algum tempo significativo neste exemplo de vetor crescente foi o Bubble Sort.

7 4.2 Vetor de ordem decrescente A Tabela 3, apresenta o número de comparações e trocas relacionadas a cada método, utilizando o conceito de análise assintótica. Enquanto a Tabela 4 mostra o tempo total de execução para a ordenação da lista, analisado empiricamente. Tabela 3. Comparações e trocas, com vetor de ordem decrescente. Tabela 4. Comparação de tempo entre métodos, com vetor de ordem decrescente. Nesta fase de testes, com um vetor decrescente, observou-se que o Shell Sort foi superior ao Comb Sort com relação a comparações, mas, no entanto, fez mais trocas. Quanto ao Bubble Sort e Insert Sort, foram os únicos a ser possível demonstrar o tempo de execução. 4.3 Vetor Aleatório A Tabela 5, apresenta o número de comparações e trocas relacionadas a cada método, utilizando o conceito de análise assintótica. Enquanto a Tabela 6 mostra o tempo total de execução para a ordenação da lista, analisado empiricamente.

8 Tabela 5. Comparações e trocas, com vetor randômico. Tabela 6. Comparação de tempo entre métodos, com vetor randômico. Nesta etapa final, usando um vetor randômico, outros métodos já puderam ser avaliados com referência ao tempo de execução, devido a lista ter sido gerada com valores aleatórios em suas posições. Avaliando, percebemos que o Bubble Sort e o Insertion Sort tiveram menor desempenho. Quanto ao tempo de execução, o Comb Sort saiu-se melhor em relação aos demais. 5. Conclusão Foram avaliados quatro métodos de ordenação, no qual deu-se importância a quantidade de comparações e de trocas que cada um realizou, e o tempo de execução, todos testados com vetores de 1.000, e posições de ordem crescente, decrescente e aleatório. Conclui-se então: 1. Bubble Sort: Apresentou-se com o pior desempenho dos métodos testados, um dos motivos é a quantidade de comparações desnecessárias. 2. Insert Sort: O desempenho em relação a outros métodos depende da ordenação do vetor em sua fase inicial, sendo que demonstrou ser bastante eficaz em vetores com poucos elementos fora de ordem, e teve o menor índice de comparações relacionado a estes. 3. Comb Sort: Demonstrou ter bom desempenho quando se trata de vetores desordenados em ordem decrescente, ou aleatórios, pois teve o menor índice de trocas em relação a todos os métodos demonstrados. 4. Shell Sort: Em relação ao número de comparações, foi o que melhor obteve êxito, além de realizar mais trocas que o Comb Sort, manteve o desempenho comparado ao tempo de execução.

9 Conclui-se então, que a escolha do algoritmo a ser usado depende da lista que ele irá ordenar, do tamanho que essa lista tem e do quão desordenados estão os elementos. Foi notado que o algoritmo Bubble Sort tem um desempenho baixo em relação aos outros, constatando então que esse possivelmente seria descartado. Baseado nos testes realizados até então, podemos constatar que os algoritmos sofisticados têm maior efetividade na ordenação, e seria aconselhável usá-los para ordenação de listas de tamanho médio e moderadamente grandes. Quanto aos algoritmos simples, no caso o Insertion Sort, possivelmente seria usado em uma lista de tamanho pequeno onde os elementos do vetor estão quase totalmente ordenados. 6. Referências OLIVEIRA, Á. B.. Métodos de Ordenação Interna. Visual Book, São Paulo, 1st edição, ZIVIANI, N.. Projeto de Algoritmos com implementação e C++ e Java. THOMPSON Learning, São Paulo, 1st edição MENNOTI, D.. Algoritmos e estrutura de dados Métodos de ordenação interna, < &gl=br>. Acessado em 13/05/2015. PÁSSARO, Â. Projeto e Análise de Algoritmos.Algoritmos de Ordenação. < Acessado em 18/08/2006. CCET-VIRTUAL. Vetor. < Acessado em18/08/2006. CEFETPB. Classificação de Dados-Métodos de Classificação Interna. < Acessado em 18/08/2006. WIRTH, N..Algoritmos e estruturas de dados. Tradução de Cheng Mei Lee. Livros técnicos e científicos, Editora S.A.Rio de Janeiro, 1999, 255p. VELOSO, P.. Estruturas de Dados. Editora Campus, 15ª Edição, 228 p KNUTH, D.. Shell's method. The Art of Computer Programming. Volume 3: Sorting and Searching (2nd ed.). Reading, Massachusetts: Addison-Wesley. pp , SHELL, D.L.. A high-speed sorting procedure. Communications of the ACM 2 (7): 30 32, 1959.

Análise do desempenho computacional dos métodos Inserção Direta, Bolha, ShellSort e ComboSort

Análise do desempenho computacional dos métodos Inserção Direta, Bolha, ShellSort e ComboSort Análise do desempenho computacional dos métodos Inserção Direta, Bolha, ShellSort e ComboSort SILVA, Paulo; SCHANTZ, Douglas; VILNECK, Igor; SILVEIRA, Felipe; CHICON, Patricia Mariotto Mozzaquatro Universidade

Leia mais

Algoritmos de ordenação: Inserção e Shellsort

Algoritmos de ordenação: Inserção e Shellsort CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Algoritmos de ordenação: Inserção e Shellsort Algoritmos e Estruturas de Dados I Slides adaptados dos slides do livro texto (Ziviani) e dos slides

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

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

Classificação e Pesquisa Aula 6 Métodos de Ordenação: ShellSort e QuickSort. Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional

Classificação e Pesquisa Aula 6 Métodos de Ordenação: ShellSort e QuickSort. Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Classificação e Pesquisa Aula 6 Métodos de Ordenação: ShellSort e QuickSort Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Plano de Ensino e Aprendizagem ( PEA) Algoritmo ShellSort Proposto por

Leia mais

Ordenação. Prof. Jonas Potros

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

Leia mais

Métodos de Ordenação Parte I

Métodos de Ordenação Parte I Estrutura de Dados II Métodos de Ordenação Parte I Prof a Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material baseado nos materiais da Prof a Ana Eliza e Prof. Robson Lins Rearranjar

Leia mais

Métodos de Classificação

Métodos de Classificação Métodos de Classificação 261 Objetivos e Caracterizações O acesso a um conjunto de dados é facilitado se o mesmo está armazenado conforme uma certa ordem, baseada num critério conhecido. O objetivo básico

Leia mais

Os métodos de ordenação que ordenam os elementos in situ podem ser classificados em três principais categorias:

Os métodos de ordenação que ordenam os elementos in situ podem ser classificados em três principais categorias: ORDENAÇÃO A atividade de ordenação é o processo de rearranjo de um certo conjunto de objetos de acordo com um critério (ordem) específico. O objetivo da ordenação é facilitar a localização dos membros

Leia mais

Projeto e Análise de Algoritmos

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

Leia mais

ALGORITMOS DE ORDENAÇÃO

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,

Leia mais

Introdução a Algoritmos Parte 09

Introdução a Algoritmos Parte 09 Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Parte 09 (Baseado no Material do Prof. Marcelo Linder) Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br

Leia mais

METODOS DE ORDENAÇÃO: A IMPORTÂNCIA DA ESCOLHA DO MÉTODO CORRETO

METODOS DE ORDENAÇÃO: A IMPORTÂNCIA DA ESCOLHA DO MÉTODO CORRETO METODOS DE ORDENAÇÃO: A IMPORTÂNCIA DA ESCOLHA DO MÉTODO CORRETO Sorting Methods: the Importance of Choosing the Correct Method Cristino Divino de Freitas Júnior, Felipe Alencar, Walteno Martins Parreira

Leia mais

Métodos de Ordenação: Selection, Insertion, Bubble, Merge (Sort)

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

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

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 12: Ordenação: Bubble, Selection e Insertion Sort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes

Leia mais

MÉTODOS DE ORDENAÇÃO. Introdução à Programação SI1

MÉTODOS DE ORDENAÇÃO. Introdução à Programação SI1 MÉTODOS DE ORDENAÇÃO Introdução à Programação SI1 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

Leia mais

MÉTODOS DE ORDENAÇÃO. Introdução à Programação SI2

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

Leia mais

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

Leia mais

ANÁLISE SOBRE ALGUNS MÉTODOS DE ORDENAÇÃO DE LISTAS: SELEÇÃO, INSERÇÃO E SHELLSORT

ANÁLISE SOBRE ALGUNS MÉTODOS DE ORDENAÇÃO DE LISTAS: SELEÇÃO, INSERÇÃO E SHELLSORT ANÁLISE SOBRE ALGUNS MÉTODOS DE ORDENAÇÃO DE LISTAS: SELEÇÃO, INSERÇÃO E SHELLSORT Analysis on some Sort of Methods of Lists: Select, Insert and Shellsort Andrew Carlos de Sene Dias, Nayara Almeida Vilela,

Leia mais

Análise empírica de algoritmos de ordenação

Análise empírica de algoritmos de ordenação Análise empírica de algoritmos de ordenação Mario E. Matiusso Jr. (11028407) Bacharelado em Ciências da Computação Universidade Federal do ABC (UFABC) Santo André, SP Brasil mario3001[a]ig.com.br Resumo:

Leia mais

Algoritmos de ordenação: Bucketsort, Radixsort e Seleçã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/

Leia mais

Limite assintótico para a ordenação, Ordenação em tempo linear

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 jesus.mena@ufabc.edu.br 1Q-2017 1 Ordenação Ordenar corresponde ao processo

Leia mais

ALGORITMOS E ESTRUTURAS DE DADOS CES-11

ALGORITMOS E ESTRUTURAS DE DADOS CES-11 ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac IECE - ITA CAP. 5. TÉCNICAS DE ORDENAÇÃO 5.1. Introdução 5.2. Métodos

Leia mais

Métodos de Classificação

Métodos de Classificação 395 Métodos de Classificação 396 Objetivos e Caracterizações O acesso a um conjunto de dados é facilitado se o mesmo está armazenado conforme uma certa ordem, baseada num critério conhecido. O objetivo

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

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

Leia mais

PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação

PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM GESTÃO DA INFORMAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GGI026 PERÍODO:

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Algoritmos Pontifícia Universidade Católica de Minas Gerais harison@pucpcaldas.br 26 de Maio de 2017 Sumário A complexidade no desempenho de Quando utilizamos uma máquina boa, ela tende a ter

Leia mais

Algoritmos de Ordenação. Profº Carlos Alberto T. Batista

Algoritmos de Ordenação. Profº Carlos Alberto T. Batista Algoritmos de Ordenação Profº Carlos Alberto T. Batista E-mail: carlos.batista@facape.br carlos36_batista@yahoo.com.br Por que ordenar os dados? Encontrar elementos em uma lista torna-se algo simples e

Leia mais

Métodos de Busca Parte 1

Métodos de Busca Parte 1 Métodos de Busca Parte 1 Introdução à Ciência da Computação II Prof. Diego Raphael Amancio Baseado no material do Prof. Rudinei Goularte e do Prof. Thiago A. S. Pardo Introdução Importância em estudar

Leia mais

5. Algoritmos de Ordenação

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

Leia mais

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 - Classificação por Seleção Direta Aula 12 Métodos de Classificação: - Classificação por Inserção Direta - Direta Prof. Gustavo Callou gustavo.callou@ufrpe.br gcallou@gmail.com Classificação por Inserção Métodos de Classificação em Memória

Leia mais

Análise de Algoritmos. Prof. Sérgio Carlos Portari Júnior

Análise de Algoritmos. Prof. Sérgio Carlos Portari Júnior Análise de Algoritmos Prof. Sérgio Carlos Portari Júnior 2016 Plano de Ensino EMENTA: Desenvolvimento de Algoritmos. Medidas de Complexidade. Estratégias Básicas. Divisão e Conquista. Método Guloso. Programação

Leia mais

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES Euzébio da Costa Silva 1, Victor Pereira Ribeiro 2, Susana Brunoro Costa de Oliveira 3 1 29520-000, euzebioprogramacao@gmail.com 2 29520-000, victor3ifes@gmail.com

Leia mais

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

Leia mais

Análise do desempenho computacional dos métodos Quicksort, Radixsort e Countingsort

Análise do desempenho computacional dos métodos Quicksort, Radixsort e Countingsort Análise do desempenho computacional dos métodos Quicksort, Radixsort e Countingsort Mauro Rodrigues da Silva 1, Patricia M. Mozzaquatro Chicon 2; Alex Vinícius Telocken3 ; 1,2,3 Ciência da Computação Universidade

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

Extra- Algoritmos de Ordenação

Extra- Algoritmos de Ordenação Extra- Algoritmos de Ordenação 1 Introdução 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 do

Leia mais

PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação

PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM GESTÃO DA INFORMAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GGI026 PERÍODO:

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

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 COM10078 Estrutura de Dados II Prof. Marcelo Otone Aguiar marcelo.aguiar@ufes.br

Leia mais

Teoria da Computação Aula 9 Noções de Complexidade

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

Leia mais

Algoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira

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

Leia mais

- Métodos simples de busca - Métodos ingênuos de ordenação (introdução)

- Métodos simples de busca - Métodos ingênuos de ordenação (introdução) 1 MCTA028 Programação Estruturada Busca e Ordenação (parte I) - Métodos simples de busca - Métodos ingênuos de ordenação (introdução) Material preparado a partir de slides dos profs. Jesús Mena-Chalco

Leia mais

Complexidade de Tempo e Espaço

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

Leia mais

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

Leia mais

PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos

PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GBC052 PERÍODO:

Leia mais

ESTRUTURAS DE DADOS E ALGORITMOS ALGORITMOS DE ORDENAÇÃO POR COMPARAÇÃO - I

ESTRUTURAS DE DADOS E ALGORITMOS ALGORITMOS DE ORDENAÇÃO POR COMPARAÇÃO - I ESTRUTURAS DE DADOS E ALGORITMOS 1 ALGORITMOS DE ORDENAÇÃO POR COMPARAÇÃO - I Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande CONTEXTO 2 ORDENACAO Uma das

Leia mais

Introdução. Estrutura de Dados II Prof Jairo Francisco de Souza

Introdução. Estrutura de Dados II Prof Jairo Francisco de Souza Introdução Estrutura de Dados II Prof Jairo Francisco de Souza Conteúdo Programático Parte 1 Manipulação de arquivos Ordenação, arquivos em série e sequências, classificação externa, arquivos de acesso

Leia mais

Classificação Externa: Geração de Partições Classificadas

Classificação Externa: Geração de Partições Classificadas Classificação Externa: Geração de Partições Classificadas Vanessa Braganholo Baseado no Material de: Inhaúma Neves Ferraz (IC/UFF) Cenário: Arquivos Sequencias } Acesso não pode ser feito em posições aleatórias

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

Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia

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

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

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

Teoria da Computação Aula 8 Noções de Complexidade

Teoria da Computação Aula 8 Noções de Complexidade Teoria da Computação Aula 8 Noções de Complexidade Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Motivação: Por que estudar algoritmos? Perguntas: - Por que estudar algoritmos se os computadores

Leia mais

Algoritmos de Ordenação

Algoritmos de Ordenação Algoritmos de Ordenação! Problema: encontrar um número de telefone em uma lista telefônica! simplificado pelo fato dos nomes estarem em ordem alfabética! e se estivesse sem uma ordem?! Problema: busca

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

PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos

PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GBC052 PERÍODO:

Leia mais

Ordenação de Dados. Ordenação de Dados

Ordenação de Dados. Ordenação de Dados UFSC-CTC-INE INE38 - Estruturas de Dados Ordenação de Dados Prof. Ronaldo S. Mello 00/ Ordenação de Dados Processo bastante utilizado na computação de uma estrutura de dados Dados ordenados garantem uma

Leia mais

Bubble Sort. Tempo total O(n 2 )

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

Leia mais

Métodos de Ordenação Parte 2

Métodos de Ordenação Parte 2 Estrutura de Dados II Métodos de Ordenação Parte 2 Prof a Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material baseado nos materiais da Prof a Ana Eliza e Prof. Robson Lins Introdução

Leia mais

Algoritmos e Estrutura de Dados. Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira Ementa e Objetivos Ementa: Análise de Algoritmos: Notação O e Análise Assintótica.

Leia mais

ALGORITMOS AVANÇADOS. UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão

ALGORITMOS AVANÇADOS. UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão UNIDADE III Algoritmo de Ordenação por Intercalação (Mergesort) Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 3.1 - Definição 3.2 - Dividir para conquistar 3.3 - Problema da

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Prof. Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Funções de Complexidade Considere

Leia mais

APLICAÇÃO DA AVALIAÇÃO EMPÍRICA E ASSINTÓTICA ENTRE MÉTODOS DE ORDENAÇÃO DE DADOS

APLICAÇÃO DA AVALIAÇÃO EMPÍRICA E ASSINTÓTICA ENTRE MÉTODOS DE ORDENAÇÃO DE DADOS APLICAÇÃO DA AVALIAÇÃO EMPÍRICA E ASSINTÓTICA ENTRE MÉTODOS DE ORDENAÇÃO DE DADOS NASCIMENTO, Jonathan da Silva 1 CAS, Bruno.D 2 LOPES, Luiz Henrique 3 SOUZA, Kael de 4 TEIXEIRA, Jader 5 CHICON, Patricia

Leia mais

Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira Anilton Joaquim da Silva

Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira Anilton Joaquim da Silva Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira ronaldo.co@ufu.br Anilton Joaquim da Silva anilton@ufu.br Introdução Uma das aplicações mais estudadas e realizadas sobre arranjos

Leia mais

Algoritmos e Estruturas de Dados II. Ordenação Externa II. Ordenação Externa. Ordenação Externa. Ordenação Externa

Algoritmos e Estruturas de Dados II. Ordenação Externa II. Ordenação Externa. Ordenação Externa. Ordenação Externa Algoritmos e Estruturas de Dados II Ordenação Externa II Prof. Ricardo J. G. B. Campello As análises dos métodos de ordenação tradicionais se preocupam basicamente com o tempo de execução dos algoritmos

Leia mais

ESTRUTURA DE DADOS I AULA I

ESTRUTURA DE DADOS I AULA I ESTRUTURA DE DADOS I AULA I PROF. ME. HÉLIO ESPERIDIÃO O que é um dado? Dado pode ser definido como a matéria-prima originalmente obtida de uma ou mais fontes (etapa de coleta). o que é a informação A

Leia mais

BCC202 - Estrutura de Dados I

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: reifortes@iceb.ufop.br

Leia mais

Métodos de Ordenação Parte 4

Métodos de Ordenação Parte 4 Métodos de Ordenação Parte 4 Introdução à Ciência de Computação II Prof. Diego Raphael Amancio Baseado no material do Prof. Rudinei Goularte e Prof. Thiago A. S. Pardo 1 Ordenação por Intercalação Revisando...

Leia mais

COMPARAÇÃO DO TEMPO DE EXECUÇÃO DE ALGORITMOS MAXMIN EM DIFERENTES PROCESSSADORES

COMPARAÇÃO DO TEMPO DE EXECUÇÃO DE ALGORITMOS MAXMIN EM DIFERENTES PROCESSSADORES COMPARAÇÃO DO TEMPO DE EXECUÇÃO DE ALGORITMOS MAXMIN EM DIFERENTES PROCESSSADORES Comparison of the Runtime of Algorithms Maxmin in Different Processsadores Walteno Martins Parreira Júnior, Marcio Oliveira

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

Projeto e Análise de Algoritmos Análise de Complexidade. Prof. Luiz Chaimowicz

Projeto e Análise de Algoritmos Análise de Complexidade. Prof. Luiz Chaimowicz Projeto e Análise de Algoritmos Análise de Complexidade Prof. Luiz Chaimowicz AGENDA Modulo 1 Data Assunto Capítulos 05/03 Algoritmos / Invariantes / Intro Análise de Complexidade 07/03 Não Haverá Aula

Leia mais

Estruturas de Dados Algoritmos de Ordenação

Estruturas de Dados Algoritmos de Ordenação Estruturas de Dados Prof. Eduardo Alchieri (introdução) Considere uma sequência arbitrária S = {s1, s2, s3,...sn} composta por n 0 elementos retirados do conjunto universo U O objetivo da ordenação é arrumar

Leia mais

PLANO DE DISCIPLINA DISCIPLINA: Estrutura de Dados 2

PLANO DE DISCIPLINA DISCIPLINA: Estrutura de Dados 2 UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM SISTEMAS DE INFORMAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Estrutura de Dados 2 ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GSI011 PERÍODO:

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

MCTA028 Programação Estruturada Aula 19 Custos de um algoritmo e funções de complexidade

MCTA028 Programação Estruturada Aula 19 Custos de um algoritmo e funções de complexidade MCTA028 Programação Estruturada Aula 19 Custos de um algoritmo e funções de complexidade Prof. Jesús P. Mena-Chalco 3Q-2017 1 0 A = n-1... 2 0 A = n-1... - O programa funciona (está correto)? - Como medir/mensurar

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

ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ORDENAÇÃO DE ARQUIVOS GRANDES Para arquivos binários, é possível implementar o

Leia mais

Algoritmos de Ordenação

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 dbeder@usp.br 10/2008 Material baseado em

Leia mais

2º/3º Ciência da Computação (CC)

2º/3º Ciência da Computação (CC) 2º/3º Ciência da Computação (CC) Orientações para a disciplina de Atividades Práticas Supervisionadas 2017 TEMA PROPOSTA DO TRABALHO APRESENTAÇÃO DO TRABALHO ATIVIDADES PRÁTICAS SUPERVISIONADAS (APS) I.

Leia mais

Classificação por Seleção - selection sort

Classificação por Seleção - selection sort Classificação por Seleção - selection sort Outro método também simples de ordenação é a ordenação por seleção. Princípio de funcionamento: 1. Selecione o menor item do vetor (ou o maior). 2. Troque-o com

Leia mais

Projeto e Análise de Algoritmos

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

Leia mais

Algoritmos e Estruturas de Dados LEE 2013/2014. popular devido à facilidade de implementação e eficiência

Algoritmos e Estruturas de Dados LEE 2013/2014. popular devido à facilidade de implementação e eficiência Algoritmos e Estruturas de Dados LEE 2013/2014 Algoritmos de Ordenação Parte II Quicksort [1] Provavelmente o algoritmo mais usado inventado nos anos 60 muito estudado e analisado desempenho bem conhecido

Leia mais

1 a Lista de Exercícios

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

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

Algoritmos de ordenação em forma paralela.

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

Leia mais

Programação de Computadores Ordenação de Arranjos

Programação de Computadores Ordenação de Arranjos Programação de Computadores Ordenação de Arranjos Notação O Alan de Freitas Classes de algoritmos Busca em arranjo Busca sequencial Busca binária On) Olog n) Ordenação de Arranjos Ordenação de Arranjos

Leia mais

Vectores: Algoritmos de Ordenação. Algoritmos e Estruturas de Dados 2009/2010

Vectores: Algoritmos de Ordenação. Algoritmos e Estruturas de Dados 2009/2010 Vectores: Algoritmos de Ordenação Algoritmos e Estruturas de Dados 2009/2010 Ordenação Problema (ordenação de vector) rearranjar os n elementos de um vector (v) por ordem crescente, ou melhor, por ordem

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

Conteúdo. Busca Seqüencial. Busca Binária. Algoritmos de Ordenação e Busca e sua Análise de Complexidade. Alneu de Andrade Lopes Rosane Minghim

Conteúdo. Busca Seqüencial. Busca Binária. Algoritmos de Ordenação e Busca e sua Análise de Complexidade. Alneu de Andrade Lopes Rosane Minghim Algoritmos de Ordenação e Busca e sua Análise de Complexidade Alneu de Andrade Lopes Rosane Minghim Introdução Busca seqüencial Busca binária Notação O(f(n)) Hierarquia de funções Selection sort Insertion

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

4 Testes e experimentos realizados 4.1. Implementação e banco de dados

4 Testes e experimentos realizados 4.1. Implementação e banco de dados 32 4 Testes e experimentos realizados 4.1. Implementação e banco de dados Devido à própria natureza dos sites de redes sociais, é normal que a maior parte deles possua uma grande quantidade de usuários

Leia mais

Estruturas de Dados 2

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

Leia mais

Preliminares. Profa. Sheila Morais de Almeida. agosto

Preliminares. Profa. Sheila Morais de Almeida. agosto Preliminares Profa. Sheila Morais de Almeida DAINF-UTFPR-PG agosto - 2016 Algoritmos Definição - Skiena Algoritmo é a ideia por trás dos programas de computador. É aquilo que permanece igual se o programa

Leia mais

Introdução à Ciência da Computação II

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

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

Classes, Herança e Interfaces

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

Leia mais