UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO

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

Download "UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO"

Transcrição

1 Disciplina: Estrutura de Dados II Turma: 4EC/5CC Data: 13/11/15 Nota: Professor: Renato E. N. de Moraes Semestre: Valor: 0,0 pts Aluno: Lista de exercícios O que é a eficiência assintótica de um algoritmo. Explique com suas palavras. Efici^encia assintótica é a efici^encia que um algoritmo terá quando ele receber uma entrada muito grande. 2. Qual a importância prática da notação O? A notaç~ao O define qual será o pior caso de execuç~ao de um algoritmo, o que possibilita saber se um algoritmo é aplicável ou n~ao a determinado problema. 3. Explique o que significa um algoritmo de ordenação necessitar de 2n 2 + 7n + 9 comparações e como isto está relacionado a seu tempo de execução. Isso significa que para ordenar um arquivo de por exemplo 10 registros, o algoritmo necessitará executar 2(10) 2 + 7(10) + 9 = 279 comparaç~oes, ou seja, quanto maior a entrada, maior será o tempo de execuç~ao do algoritmo, pois maior será o número de comparaç~oes. 4. Qual algoritmo você julga melhor: um que executa utilizando 700n operações ou outro que utiliza 0, 3n 2 + n operações para resolver um mesmo problema? O que executa em 700n+2000, pois para uma entrada muito grande ele realizará um número menor de operaç~oes e consequentemente executará em menor tempo. Igualando as funç~oes 700n+2000 e 0, 3n 2 +n, chegamos a um resultado que mostra quando os algoritmos ter~ao o mesmo número de operaç~oes para uma entrada n, e que para valores maiores que esse saberemos qual algoritmo fará menos operaç~oes. A partir de 2333 chaves, o algoritmo 700n passará a fazer menos operaç~oes que 0, 3n 2 + n. 5. Suponha que você dispõe de um algoritmo A, O(n 2 ), e outro B, O(n log n), ambos resolvendo um mesmo problema. Sabe-se, cotidianamente, que o algoritmo A é mais usado, pois é mais rápido que B. Como? O algoritmo A é mais usado, pois provavelmente o algoritmo raramente é utilizado com uma entrada que te garante o pior caso, podendo dessa forma ser executando em um tempo menor que o algoritmo B. 6. Qual a ordem de complexidade O(f(n)) para as funções: (a) 40n 3 (b) 0, 3n 2 2n (c) 45 log n + n (d) 8 log n + 2 log 4 n + log 7 8n (e) n 2 + log 20 n

2 (f) n 2 + 2n Respostas: (a) O(n 3 ) (b) O(n 2 ) (c) O(n) (d) O(log 7 n) (e) O(n 2 ) (f) O(n 2 ) 7. Qual o algoritmo mais eficiente segundo as funções da questão anterior? Qual o menos eficiente? O mais eficiente seria o algoritmo da letra d e o menos eficiente seria o da letra a. 8. Por que, em geral, é melhor trocar um algoritmo por outro mais eficiente do que simplesmente aumentar o poder de processamento de um computador (e.g., trocar por um processador mais potente)? Pois trocando o algoritmo por um mais eficiente voc^e terá ganho de tempo independente do hardware, ou seja seu algoritmo executará mais rápido para o mesmo tamanho n de entrada sem necessitar comprar um hardware novo. 9. O procedimento seguinte faz o preenchimento de um vetor. No algoritmo, identifique claramente o que representa o tamanho do problema e, em função disso, faça a análise completa de complexidade de tempo. Não são necessárias provas formais. Proc Preenche(var A: arranjo; Tam: inteiro) A[0] = 1 Para I = 1 até Tam-1 Se I mod 2 = 0 { par Ent~ao A[I] = 3 * H[I-1] + 1 Sen~ao A[I] = 0 Para J = 0 até I-1 A[I] = A[I] + A[J] Fim-para Fim-se Fim-para Fim-proc A complexidade será: i=1 O(n 2 ) Onde: f(i) = 1+ 2p+1 = 1+2 p+ 1 = +2 p = (1+ 2 ) ()+ =

3 f(i) = { 1, i%2 = 0 x, i% Porque podemos descartar os termos de menor ordem e todos os coeficientes da expressão que representa o custo de um algoritmo quando consideramos sua eficiência assintótica? Pois a efici^encia assintótica analisa o algoritmo com um valor muito grande de n, valor esse que se sobresairá dos demais termos constantes da equaç~ao de custo do algoritmo. 11. Qual a ordem de complexidade do algoritmo que faz pesquisa binária em uma tabela? Qual o número mínimo de comparações com a chave de busca que pode ocorrer até achar um registro na tabela? Qual o número máximo? O(log(n)), o mínimo de comparaç~ao é 1, quando o elemento buscado é o elemento central da tabela e o número máximo será log(n), onde n é o tamanho da tabela. 12. Utilizando o algoritmo da Seleção Direta (a) Mostre, passo a passo, os estágios da ordenação do vetor [3, 19, 25, 24, 1, 8, 10, 7, 9, 12, 10]. 1 [3, 19, 25, 24, 1, 8, 10, 7, 9, 12, 10] 2 [1, 19, 25, 24, 3, 8, 10, 7, 9, 12, 10] 3 [1, 3, 25, 24, 19, 8, 10, 7, 9, 12, 10] 4 [1, 3, 7, 24, 19, 8, 10, 25, 9, 12, 10] 5 [1, 3, 7, 8, 19, 24, 10, 25, 9, 12, 10] 6 [1, 3, 7, 8, 9, 24, 10, 25, 19, 12, 10] 7 [1, 3, 7, 8, 9, 10, 24, 25, 19, 12, 10] 8 [1, 3, 7, 8, 9, 10, 10, 25, 19, 12, 24] 9 [1, 3, 7, 8, 9, 10, 10, 12, 19, 25, 24] 10 [1, 3, 7, 8, 9, 10, 10, 12, 19, 25, 24] 11 [1, 3, 7, 8, 9, 10, 10, 12, 19, 24, 25] (b) O que você poderia dizer sobre o pior e sobre o melhor caso para este algoritmo? Melhor caso: O(n) Pior caso: O(n 2 )

4 13. Escreva uma versão recursiva do algoritmo de ordenação por seleção. Resposta: void selection(int list[], int i, int j, int size, int flag){ int temp; if (i < size - 1){ if (flag) { j = i + 1; if (j < size){ if (list[i] > list[j]){ temp = list[i]; list[i] = list[j]; list[j] = temp; selection(list, i, j + 1, size, 0); selection(list, i + 1, 0, size, 1); 14. Considere a implementação do algoritmo SelectionSort dada por: void selecao (int n, int v[]) { int i, j, min, x; for (i = 0; i < n-1; ++i) { min = i; for (j = i+1; j < n; ++j) if (v[j] < v[min]) min = j; x = v[i]; v[i] = v[min]; v[min] = x; (a) Na função seleção, que acontece se trocarmos for ( i = 0 por for (i = 1)? Que acontece se trocarmos for (i = 0; i < n-1 por for ( i = 0; i < n? O vetor será ordena apenas da posiç~ao 1 para frente. irá acessar área inválida de memória. No segundo caso o algoritmo (b) Na função seleção, troque a comparação v[j] < v[min] por v[j] <= v[min]. A nova função continua produzindo uma ordenando crescente de v[0..n-1]? sim, porem realizará mais trocas da variável "min". 15. Escreva uma função que permute os elementos de um vetor inteiro v[0..n-1] de modo que eles fiquem em ordem decrescente.

5 void selecao_decrescente (int n, int v[]) { int i, j, max, x; for (i = 0; i < n-1; ++i) { max = i; for (j = i+1; j < n; ++j) if (v[j] > v[max]) max = j; x = v[i]; v[i] = v[max]; v[max] = x; 16. Faça uma análise da complexidade do algoritmo Selection Sort. Evidencie os custos relacionados a (1) Comparações e (2) Permutações, mostrando qual tem mais influência sobre o tempo de execução. comparaç~oes = O(n 2 ) trocas = O(n) Assim, as comparaç~oes tem maior influ^encia sobre o tempo de execuç~ao, pois é realizado muito mais vezes do que a troca, mesmo a troca sendo uma operaç~ao mais custosa de se realizar se comparada a apenas uma comparaç~ao. 17. Utilizando o algoritmo Heapsort (a) Mostre, passo a passo, os estágios da ordenação do vetor [3, 19, 25, 24, 1, 8, 10, 7, 9, 12, 10]. 1 - [3, 19, 25, 24, 1, 8, 10, 7, 9, 12, 10] 2 - [25, 24, 10, 19, 12, 8, 3, 7, 9, 1, 10] 3 - [24, 19, 10, 10, 12, 8, 3, 7, 9, 1, 25] 4 - [19, 12, 10, 10, 1, 8, 3, 7, 9, 24, 25] 5 - [12, 10, 10, 9, 1, 8, 3, 7, 19, 24, 25] 6 - [10, 9, 10, 7, 1, 8, 3, 12, 19, 24, 25] 7 - [10, 9, 8, 7, 1, 3, 10, 12, 19, 24, 25] 8 - [9, 7, 8, 3, 1, 10, 10, 12, 19, 24, 25] 9 - [8, 7, 1, 3, 9, 10, 10, 12, 19, 24, 25] 10 - [7, 3, 1, 8, 9, 10, 10, 12, 19, 24, 25] 11 - [3, 1, 7, 8, 9, 10, 10, 12, 19, 24, 25] 12 - [1, 3, 7, 8, 9, 10, 10, 12, 19, 24, 25] (b) O que é um heap? Heap é uma estrutura de dados organizada como árvore binária balanceada, seguindo algumas regras. (c) Quais são as operações básicas realizadas sobre um heap e qual o tempo para realização destas operações? Build_heap O(n) Heapify O(lg(n)) LEFT O(1)

6 RIGHT O(1) PARENT O(1) (d) Modifique o algoritmo Heapsort para realizar a ordenação de dados em ordem decrescente, mas continue fazendo ordenação local. Basta alterar a funç~ao "Heapify"de forma a manter o menor elemento na raiz, ou seja, construir um "min-heap" 18. Discuta a seguinte implementação do algoritmo Heapsort: void bottom_up_heapsort (int n, int v[]) { int m, f, max, t; constroi_heap (n, v); for (m = n; m > 1; --m) { max = v[1]; f = 2; while (f <= m) { if (f < m && v[f] < v[f+1]) ++f; v[f/2] = v[f]; f *= 2; f = f/2; if (f < m) { t = v[f], v[f] = v[m], v[m] = t; while (f > 1 && v[f/2] < v[f]) { t = v[f], v[f] = v[f/2], v[f/2] = t; f = f/2; v[m] = max; void constroi_heap (int n, int v[]) { int m, f, t; for (m = 1; m < n; ++m) { f = m+1; while (f > 1 && v[f/2] < v[f]) { t = v[f/2], v[f/2] = v[f], v[f] = t; f = f/2;

7 19. Utilizando o algoritmo Merge Sort (a) Mostre, passo a passo, os estágios da ordernação do vetor [3, 19, 25, 24, 1, 8, 10, 7, 9, 12, 10]. 1 - [3, 19, 25, 24, 1, 8, 10, 7, 9, 12, 10] 2 - [3, 19, 1, 24, 25, 8, 10, 7, 9, 12, 10] 3 - [1, 3, 19, 24, 25, 8, 10, 7, 9, 12, 10] 4 - [1, 3, 19, 24, 25, 7, 8, 10, 9, 12, 10] 5 - [1, 3, 19, 24, 25, 7, 8, 10, 9, 10, 12] 6 - [1, 3, 19, 24, 25, 7, 8, 9, 10, 10, 12] 7 - [1, 3, 7, 8, 9, 10, 10, 12, 19, 24, 25] (b) Qual o desempenho assintótico do algoritmo? O(nlog(n)) 20. Considere a função abaixo: void intercala1 (int p, int q, int r, int v[]) { int i, j, k, *w; w = malloc ((r-p) * sizeof (int)); i = p; j = q; k = 0; while (i < q && j < r) { if (v[i] <= v[j]) w[k++] = v[i++]; else w[k++] = v[j++]; while (i < q) w[k++] = v[i++]; while (j < r) w[k++] = v[j++]; for (i = p; i < r; ++i) v[i] = w[i-p]; free (w); (a) Analise e discuta a seguinte alternativa para a função intercala1 (detalhes de alocação e liberação de memória foram omitidas):

8 i = p; j = q; k = 0; while (i < q && j < r) { if (v[i] <= v[j]) w[k++] = v[i++]; if (v[i] > v[j]) w[k++] = v[j++]; while (i < q) w[k++] = v[i++]; while (j < r) w[k++] = v[j++]; for (i = p; i < r; ++i) v[i] = w[i-p]; Esse algoritmo aumentará o número de operaç~oes realizadas no laço while, pois ao invés de se usar if, else, foram usado dois if s o que implica em realizar uma comparaç~ao a mais por cada laço do while. (b) Analise e discuta a seguinte alternativa para a função intercala1 (detalhes de alocação e liberação de memória foram omitidas): i = p; j = q; k = 0; while (i < q && j < r) { if (v[i] <= v[j]) w[k++] = v[i++]; else w[k++] = v[j++]; while (i < q) w[k++] = v[i++]; for (i = p; i < j; ++i) v[i] = w[i-p]; Esse algoritmo funcionará corretamente, pois caso o primeiro while seja terminado pela condiç~ao i < q, a parte direita do vetor a ser intercalado n~ao será copiada para o vetor auxiliar w, porém o for subsequente irá copiar para o vetor de resposta os elementos do vetor w até a posiç~ao j, pois o resto dos elementos já est~ao no vetor resposta, que é o vetor original. Com isso algumas operaç~oes s~ao economizadas o que torna o algoritmo um pouco mais eficiente que o primeiro. 21. Critique a função de intercalação abaixo. (Observe que a função faz a intercalação inloco, ou seja, não usa um vetor auxiliar). Ela está está correta? Quais as invariantes do while? Qual o consumo de tempo? int i, k, t; i = p; while (i < q && q < r) { if (v[i] >= v[q]) { t = v[q]; for (k = q - 1; k >= i; k--) v[k+1] = v[k]; v[i] = t; q++; i++;

9 O algoritmo está correto. A invariante do while é que todo elemento com posiç~ao menor que i estará no seu local certo do vetor final. O consumo de tempo será O(n 2 ) 22. Discuta a seguinte implementação do algoritmo Mergesort: void mergesort (int p, int r, int v[]) { if (p < r) { int q = (p + r) / 2; mergesort (p, q, v); mergesort (q, r, v); intercala (p, q, r, v); A implementaç~ao está errada, por um leve detalhe, a segunda chamada recursiva deveria ser mergesort(q + 1, r, v); 23. Qual a diferença entre a propriedade de uma árvore binária de pesquisa e a propriedade de um heap? Na árvore binária de busca a propriedade respeitada é que os filhos a esquerda sejam menores que o pai e os filhos a direita sejam maiores que o pai. No Heap a única propriedade requerida é que o pai seja maior que os filhos. 24. Considere o seguinte algoritmo de ordenação: dado um conjunto de valores a serem ordenados, construa uma árvore binária de pesquisa e imprima os valores dos nodos durante um percorrimento da árvore em pré-ordem. Discuta o custo deste algoritmo para o pior e melhor caso? Como ele se compara com os custos do Quicksort e do Merge Sort? - No pior caso, a árvore binária de busca será uma lista encadeada, ou seja, os elementos foram inseridos de forma ordenada e portanto o custo de inserç~ao de cada elemento será O(n), assim para construir a árvore no pior caso terá complexidade O(n 2 ). Já no melhor caso a árvore estará balanceada e para inserir um elemento o custo será de O(lg(n)), assim para construir toda a árvore a complexidade será O(n lg(n)). Para percorrer a árvore eu sempre vou precisar visitar os n nós da árvore ou seja, complexidade O(n), dessa forma somando as complexidades temos: - pior caso: O(n 2 ) + O(n) = O(n 2 ) - melhor caso: O(n lg(n)) + O(n) = O(n lg(n)) comparado com Merge Sort ele é menos efici^ente, pois o merge Sort tem complexidade no melhor e pior caso O(n lg(n)). Porém terá a mesma complexidade do Quick Sort, no pior e no melhor caso. 25. Escreva uma função que imprima as chaves de uma árvore-b em ordem crescente. void emordem (tpaginab raiz) { if(raiz==null) return;

10 for(int i=0;i<raiz.n,i++){ emordem(raiz->pont[i]); printf("%i",raiz->chv[i]); emordem(raiz->pont[raiz.n]); 26. Escreva uma função que imprima as chaves de uma árvore-b em ordem decrescente. void emordemdecrescente (tpaginab raiz) { if(raiz==null) return; for(int i=raiz.n; i>0,i--){ emordemdecrescente(raiz->pont[i]); printf("%d",raiz->chv[i]); emordemdecrescente (raiz->pont[0]);

1. O que é a eficiência assintótica de um algoritmo. Explique com suas palavras.

1. O que é a eficiência assintótica de um algoritmo. Explique com suas palavras. Disciplina: Estrutura de Dados II Turma: 4EC/5CC Data: 13/11/15 Nota: Professor: Renato E. N. de Moraes Semestre: 2015-2 Valor: 0,0 pts Aluno: Lista de exercícios 04 1. O que é a eficiência assintótica

Leia mais

HeapSort. Estrutura de Dados II Jairo Francisco de Souza

HeapSort. Estrutura de Dados II Jairo Francisco de Souza HeapSort Estrutura de Dados II Jairo Francisco de Souza HeapSort Algoritmo criado por John Williams (1964) Complexidade O(NlogN) no pior e médio caso Mesmo tendo a mesma complexidade no caso médio que

Leia mais

UNIVERSIDADE FEDERAL DO PIAUÍ COLÉGIO TÉCNICO DE TERESINA-TÉCNICO EM INFORMÁTICA DISCIPLINA: ESTRUTURA DE DADOS PROFESSOR: Valdemir Junior

UNIVERSIDADE FEDERAL DO PIAUÍ COLÉGIO TÉCNICO DE TERESINA-TÉCNICO EM INFORMÁTICA DISCIPLINA: ESTRUTURA DE DADOS PROFESSOR: Valdemir Junior UNIVERSIDADE FEDERAL DO PIAUÍ COLÉGIO TÉCNICO DE TERESINA-TÉCNICO EM INFORMÁTICA DISCIPLINA: ESTRUTURA DE DADOS PROFESSOR: Valdemir Junior ALGORITMO DE ORDENAÇÃO HEAPSORT Alyson Pereira Barbosa Erisvaldo

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

Universidade Federal do ABC Avaliação Disciplina Turma Professor Data Instruções para a prova (leia antes de começar): SelectionSort selectonsortrec

Universidade Federal do ABC Avaliação Disciplina Turma Professor Data Instruções para a prova (leia antes de começar): SelectionSort selectonsortrec Universidade Federal do ABC Avaliação: Prova 02 Disciplina: BC1424 - Algoritmos e Estruturas de Dados I Turma: Noturno Professor: Jesús P. Mena-Chalco Data: 03/05/2016 Nome completo: RA: Instruções para

Leia mais

Ordenação: MergeSort. Prof. Túlio Toffolo BCC202 Aula 14 Algoritmos e Estruturas de Dados I

Ordenação: MergeSort. Prof. Túlio Toffolo  BCC202 Aula 14 Algoritmos e Estruturas de Dados I Ordenação: MergeSort Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 14 Algoritmos e Estruturas de Dados I DIVISÃO E CONQUISTA Motivação É preciso revolver um problema com uma entrada grande

Leia mais

Ordenação: Heapsort. Algoritmos e Estruturas de Dados II

Ordenação: Heapsort. Algoritmos e Estruturas de Dados II Ordenação: Heapsort Algoritmos e Estruturas de Dados II Introdução Possui o mesmo princípio de funcionamento da ordenação por seleção Selecione o menor item do vetor Troque-o pelo item da primeira posição

Leia mais

ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES

ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES Listas de Prioridades! Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade! A prioridade associada a um dado pode

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

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

Algoritmos e Estrutura de Dados

Algoritmos e Estrutura de Dados Algoritmos e Estrutura de Dados Fabrício Olivetti de França 02 de Fevereiro de 2019 Topics 1. Algoritmos de Ordenação Eficientes 1 Algoritmos de Ordenação Eficientes Heap Sort Na primeira aula de ordenação

Leia mais

Tópico 5 Algoritmos de Ordenação. Parte I - métodos de ordenação: inserção, mergesort, heapsort e quicksort.

Tópico 5 Algoritmos de Ordenação. Parte I - métodos de ordenação: inserção, mergesort, heapsort e quicksort. Tópico 5 Algoritmos de Ordenação Parte I - métodos de ordenação: inserção, mergesort, heapsort e quicksort. 1 Problema Computacional: Ordenação Problema computacional que surge em diversas situações. Definição:

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

Filas de prioridade. Marcelo K. Albertini. 27 de Novembro de 2014

Filas de prioridade. Marcelo K. Albertini. 27 de Novembro de 2014 Filas de prioridade Marcelo K. Albertini de Novembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover

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

Programação Estruturada

Programação Estruturada Programação Estruturada Ordenação Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC O problema da ordenação Ordenação

Leia mais

ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro Sala 110 Prédio da Computação IECE - ITA

ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro Sala 110 Prédio da Computação   IECE - ITA 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 MÉTODOS MAIS EFICIENTES QUE O(N 2 ) Método Quicksort Método

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

Ordenação: HeapSort. Prof. Túlio Toffolo BCC202 Aula 17 Algoritmos e Estruturas de Dados I

Ordenação: HeapSort. Prof. Túlio Toffolo   BCC202 Aula 17 Algoritmos e Estruturas de Dados I 2014-01 Aula 16 Fila de Prioridade / HeapSort Adaptado por Reinaldo Fortes para o curso de 2014-01 Arquivo original: Aula 17: HeapSort Ordenação: HeapSort Prof. Túlio Toffolo http://www.toffolo.com.br

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

Aula 13: Ordenação - Heapsort. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Aula 13: Ordenação - Heapsort. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Aula 13: Ordenação - Heapsort Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Filas de Prioridades É uma estrutura de dados onde a chave de cada item reflete sua habilidade relativa de abandonar

Leia mais

Algoritmos e Estruturas de Dados 2006/2007

Algoritmos e Estruturas de Dados 2006/2007 Filas de prioridade Algoritmos e Estruturas de Dados 2006/2007 Filas de prioridade Uma fila de prioridade permite, pelo menos, duas operações sobre um conjunto de valores comparáveis: inserção de um elemento

Leia mais

Ordenação por Intercalação Métodos de Ordenação Parte 4

Ordenação por Intercalação Métodos de Ordenação Parte 4 Ordenação por Intercalação Métodos de Ordenação Parte 4 SCC-601 Introdução à Ciência da Computação II Rosane Minghim 2010 Revisando... Também chamado merge-sort Idéia básica: dividir para conquistar Um

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

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

Filas de prioridade. Marcelo K. Albertini. 3 de Dezembro de 2013

Filas de prioridade. Marcelo K. Albertini. 3 de Dezembro de 2013 Filas de prioridade Marcelo K. Albertini de Dezembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover

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

MAC121 ALGORITMOS E ESTRUTURAS DE DADOS I 2O. SEMESTRE DE 2017

MAC121 ALGORITMOS E ESTRUTURAS DE DADOS I 2O. SEMESTRE DE 2017 PROVA 1 MAC121 ALGORITMOS E ESTRUTURAS DE DADOS I 2O. SEMESTRE DE 2017 Nome: Número USP: Instruções: (1 ) Esta prova é individual. (2 ) Não destaque as folhas deste caderno. (3 ) A prova consiste de 6

Leia mais

ORDENAÇÃO POR INTERCALAÇÃO

ORDENAÇÃO POR INTERCALAÇÃO AULA 6 ORDENAÇÃO POR INTERCALAÇÃO Na aula 5 revimos os métodos de ordenação mais básicos, que são todos iterativos, simples e têm tempo de execução de pior caso proporcional a n 2, onde n é o tamanho da

Leia mais

INF 1010 Estruturas de Dados Avançadas

INF 1010 Estruturas de Dados Avançadas INF 1010 Estruturas de Dados Avançadas Listas de Prioridades e Heaps 1 Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um

Leia mais

INF 1010 Estruturas de Dados Avançadas

INF 1010 Estruturas de Dados Avançadas INF 1010 Estruturas de Dados Avançadas Listas de Prioridades e Heaps 12/09/16 2012 DI, PUC-Rio Estruturas de Dados Avançadas 2012.1 1 uma outra aplicação de árvores binárias lista de prioridades: lista

Leia mais

HeapSort Filas de Prioridade Heap. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

HeapSort Filas de Prioridade Heap. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR HeapSort Filas de Prioridade Heap David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Filas de Prioridades É uma estrutura de dados onde a chave de cada item reflete sua habilidade relativa de

Leia mais

Carlos Eduardo Batista. Centro de Informática - UFPB

Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Métodos de pesquisa e classificação de dados (continuação) Estruturas de Dados 2 Algoritmo de busca Recebe como argumento

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

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

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

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

ESTRUTURAS DE DADOS E ALGORITMOS HEAP BINÁRIA

ESTRUTURAS DE DADOS E ALGORITMOS HEAP BINÁRIA ESTRUTURAS DE DADOS E ALGORITMOS 1 HEAP BINÁRIA Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande HEAP BINÁRIA É uma árvore binária satisfazendo duas propriedades:

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

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Heaps Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Introdução Definição de Heap Heap Binária Implementação com vetor Fila de Prioridades

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

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

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

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

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

Ordenação: QuickSort. Prof. Túlio Toffolo BCC202 Aula 15 Algoritmos e Estruturas de Dados I

Ordenação: QuickSort. Prof. Túlio Toffolo  BCC202 Aula 15 Algoritmos e Estruturas de Dados I Ordenação: QuickSort Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 15 Algoritmos e Estruturas de Dados I QuickSort Proposto por Hoare em 1960 e publicado em 1962. É o algoritmo de ordenação

Leia mais

Análise de Algoritmos Algoritmos de Ordenação

Análise de Algoritmos Algoritmos de Ordenação Análise de Algoritmos Algoritmos de Ordenação Nelson Cruz Sampaio Neto nelsonneto@ufpa.br Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação 5 de abril de 2016

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

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

ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORES BINÁRIAS DE BUSCA Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REFERÊNCIA Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Cap. 4 INSTITUTO DE COMPUTAÇÃO

Leia mais

Aula 19: Métodos eficientes de ordenação

Aula 19: Métodos eficientes de ordenação Algoritmos e Estruturas de Dados I Aula 19: Métodos eficientes de ordenação (Merge sort e Quick sort) Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2019 1 Intercalando 2 vetores ordenados 2 Intercalando

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

ALGORITMOS em linguagem C

ALGORITMOS em linguagem C ALGORITMOS em linguagem C Paulo Feofiloff Instituto de Matemática e Estatística Universidade de São Paulo Campus/Elsevier. Algoritmos em linguagem C Paulo Feofiloff editora Campus/Elsevier, 2009 www.ime.usp.br/

Leia mais

INF 1010 Estruturas de Dados Avançadas

INF 1010 Estruturas de Dados Avançadas INF 1010 Estruturas de Dados Avançadas Complexidade de Algoritmos 2012 DI, PUC-Rio Estruturas de Dados Avançadas 2012.2 1 Introdução Complexidade computacional Termo criado por Hartmanis e Stearns (1965)

Leia mais

Análise de Algoritmos Estrutura de Dados II

Análise de Algoritmos Estrutura de Dados II Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Análise de Algoritmos Estrutura de Dados II COM10078 - Estrutura de Dados II Prof. Marcelo Otone Aguiar marcelo.aguiar@ufes.br

Leia mais

Linguagem C: Ordenação

Linguagem C: Ordenação Instituto de C Linguagem C: Ordenação Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Tópicos Principais Introdução Algoritmos de ordenação Ordenação

Leia mais

Ordenação Interna. Prof. Jonas Potros

Ordenação Interna. Prof. Jonas Potros Ordenação Interna Prof. Jonas Potros Heap A estrutura de dados heap é um objeto arranjo que pode ser visto como uma árvore binária completa. A árvore está completamente preenchida em todos os níveis, exceto

Leia mais

MAC121 ALGORITMOS E ESTRUTURAS DE DADOS I 2O. SEMESTRE DE 2017

MAC121 ALGORITMOS E ESTRUTURAS DE DADOS I 2O. SEMESTRE DE 2017 PROVA 1 MAC121 ALGORITMOS E ESTRUTURAS DE DADOS I 2O. SEMESTRE DE 2017 Nome: Número USP: Instruções: (1 ) Esta prova é individual. (2 ) Não destaque as folhas deste caderno. (3 ) A prova consiste de 6

Leia mais

Arquivos Sequenciais. Estruturas de Dados II Vanessa Braganholo

Arquivos Sequenciais. Estruturas de Dados II Vanessa Braganholo Arquivos Sequenciais Estruturas de Dados II Vanessa Braganholo Arquivos Sequenciais } Pq arquivos sequenciais? Relembrando } Relembrando: uma tabela ou arquivo é um conjunto de registros que possuem a

Leia mais

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1 Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) PIP/CA - Programa Interdisciplinar de Pós-Graduação

Leia mais

INF 1010 Estruturas de Dados Avançadas

INF 1010 Estruturas de Dados Avançadas INF 1010 Estruturas de Dados Avançadas Listas de Prioridades e Heaps 1 Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um

Leia mais

Algoritmos e Estruturas de Dados 2005/2006

Algoritmos e Estruturas de Dados 2005/2006 Filas de prioridade Algoritmos e Estruturas de Dados 2005/2006 Filas de prioridade Uma fila de prioridade permite, pelo menos, duas operações sobre um conjunto de valores comparáveis: inserção de um elemento

Leia mais

Algoritmos de Ordenação: QuickSort

Algoritmos de Ordenação: QuickSort Algoritmos de Ordenação: QuickSort ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 10/2008 Material

Leia mais

AED2 - Aula 11 Problema da separação e quicksort

AED2 - Aula 11 Problema da separação e quicksort AED2 - Aula 11 Problema da separação e quicksort Projeto de algoritmos por divisão e conquista Dividir: o problema é dividido em subproblemas menores do mesmo tipo. Conquistar: os subproblemas são resolvidos

Leia mais

SCC-601 Introdução à Ciência da Computação II. Ordenação e Complexidade Parte 3. Lucas Antiqueira

SCC-601 Introdução à Ciência da Computação II. Ordenação e Complexidade Parte 3. Lucas Antiqueira SCC-60 Introdução à Ciência da Computação II Ordenação e Complexidade Parte 3 Lucas Antiqueira Ordenação: Utiliza uma estrutura de dados chamada heap para ordenar. Um heap é um vetor (array) que representa

Leia mais

Algoritmos de Ordenação. Cota inferior. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

Algoritmos de Ordenação. Cota inferior. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO Algoritmos de Ordenação Cota inferior Professora: Fátima L. S. Nunes 1 1 1 Algoritmos de Ordenação Algoritmos de ordenação que já conhecemos: 2 2 2 Algoritmos de Ordenação Algoritmos de ordenação que já

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

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 024/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: «Nome» INSCRIÇÃO: «Inscrição» Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome

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

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

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

Algoritmos de Ordenação

Algoritmos de Ordenação Algoritmos de Ordenação Introdução à Ciência da Computação Prof. Edison Ishikawa Objetivo Apresentar diferentes algoritmos de ordenação de dados Mostrar como analisar os algoritmos em termos de tempo de

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

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 Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo

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

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

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

ESTRUTURAS DE DADOS E ALGORITMOS ALGORITMOS DE ORDENAÇÃO POR COMPARAÇÃO - II ESTRUTURAS DE DADOS E ALGORITMOS ALGORITMOS DE ORDENAÇÃO POR COMPARAÇÃO - II Adalberto Cajueiro Departamento de Sistemas e Computação Universidade Federal de Campina Grande ALGORITMOS VISTOS ANTERIORMENTE

Leia mais

Algoritmos de Ordenação

Algoritmos de Ordenação Algoritmos de Ordenação Leandro Tonietto Unisinos ltonietto@unisinos.br http://professor.unisinos.br/ltonietto Atualizado em 7-Jun-12 http://professor.unisinos.br/ltonietto/inf/lb2/sort.pdf ! Objetivos!

Leia mais

1. Faça um programa que leia uma string digitada pelo usuário e salve em um arquivo em branco.

1. Faça um programa que leia uma string digitada pelo usuário e salve em um arquivo em branco. Segunda lista de exercícios v100 Engenharia Elétrica - Eletrônica 2º Semestre de 2015 Prof: Daniel Rodrigo Ferraz Bonetti SSC0300 Linguagem de Programação e Aplicações 1 Faça um programa que leia uma string

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

Algoritmos de Ordenação

Algoritmos de Ordenação Ordenação é uma das operações mais usuais em listas lineares Consequentemente, uma implementação ineficiente pode afetar diretamente o desempenho geral da aplicação! Por ser um problema bem estudado, existem

Leia mais

5. Análise de Complexidade de Algoritmos. João Pascoal Faria (versão original) Ana Paula Rocha (versão 2003/2004) Luís Paulo Reis (versão 2005/2006)

5. Análise de Complexidade de Algoritmos. João Pascoal Faria (versão original) Ana Paula Rocha (versão 2003/2004) Luís Paulo Reis (versão 2005/2006) 5. Análise de Complexidade de Algoritmos João Pascoal Faria (versão original) Ana Paula Rocha (versão 2003/2004) Luís Paulo Reis (versão 2005/2006) FEUP - MIEEC Prog 2-2006/2007 Introdução Algoritmo: conjunto

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

Algoritmos de Ordenação: Tempo Linear

Algoritmos de Ordenação: Tempo Linear Algoritmos de Ordenação: Tempo Linear ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 10/2008 Material

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

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

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior Árvore Binária de Busca (ABB) o valor associado à raiz é sempre maior que o valor associado a qualquer nó da sub-árvore à esquerda

Leia mais

Capacitação em Linguagem C Parte 2

Capacitação em Linguagem C Parte 2 Capacitação em Linguagem C Parte 2 Andrey Souto Maior Giuseppe Portolese Universidade Estadual de Maringá - Centro de Tecnologia Departamento de Informática 22 de outubro de 2015 Sumário I Tipos abstratos

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

Melhores momentos AULA 3. Algoritmos p.148/188

Melhores momentos AULA 3. Algoritmos p.148/188 Melhores momentos AULA 3 Algoritmos p.148/188 Análise da intercalação Problema: Dados e crescentes, rearranjar de modo que ele fique em ordem crescente. Entra: Sai: Algoritmos p.149/188 Algoritmos p.150/188

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Professor Ariel da Silva Dias Algoritmos Divisão e Conquista Construção incremental Resolver o problema para um sub-conjunto dos elementos de entrada; Então, adicionar

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

Ordenação por Seleção Métodos de Ordenação Parte 3

Ordenação por Seleção Métodos de Ordenação Parte 3 Ordenação por Seleção Métodos de Ordenação Parte SCC-6 Introdução à Ciência da Computação II Rosane Minghim Idéia básica: os elementos são selecionados e dispostos em suas posições corretas Seleção direta

Leia mais

Métodos de Ordenação

Métodos de Ordenação Métodos de Ordenação Parte 3 SCC-601 Introdução à Ciência da Computação II Rosane Minghim 2010/2011 Baseado no material dos Professores Rudinei Goularte e Thiago Pardo 1 Ordenação por Seleção Idéia básica:

Leia mais

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

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

Leia mais

Edital de Seleção 032/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Edital de Seleção 032/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 032/2016 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua

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