Algoritmos de ordenação. e de procura

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

Download "Algoritmos de ordenação. e de procura"

Transcrição

1 Algoritmos de ordenação Ordenação e de procura Ordenação por selecção Ordenação por inserção linear Ordenação rápida A função sort Exemplos: Ordenar vectores de estruturas Ordenar strings Ordenar índices Procura Procura sequencial Procura binária A função find Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII

2 Algoritmos de ordenação Ordenação é o processo de colocar uma lista em ordem ascendente ou ordem descendente. Existem vários algoritmos de ordenação: Ordenação por selecção; Ordenação por inserção linear; Ordenação rápida; Etc. Miguel Pedro Silva José Borges Computação e Programação 2009 /

3 Ordenação por selecção Algoritmo (ordem crescente): 1. Procurar na lista o elemento mais pequeno, e colocá-lo na primeira posição da lista, trocando-o de posição com o primeiro elemento da lista; 2. Procurar, a partir do segundo elemento da lista, o elemento mais pequeno, e colocá-lo na segunda posição da lista, trocando-o de posição com o segundo elemento da lista; 3. Continuar o processo até o penúltimo elemento estar colocado na posição correcta. Miguel Pedro Silva José Borges Computação e Programação 2009 /

4 Ordenação por selecção Percorre várias vezes a lista ou parte da lista Em cada passagem, selecciona um item a ser correctamente posicionado na lista Procura o elemento mais pequeno Troca-o com o primeiro elemento Miguel Pedro Silva José Borges Computação e Programação 2009 /

5 Ordenação por selecção Repete para o resto da lista as sublistas vão sendo sucessivamente mais pequenas Miguel Pedro Silva José Borges Computação e Programação 2009 /

6 Ordenação por selecção: implementação Miguel Pedro Silva José Borges Computação e Programação 2009 /

7 Ordenação por selecção: execução >> lista=[67,33,21,84,49,50,75] lista = >> lista_ord=mysort(lista) lista_ord = Miguel Pedro Silva José Borges Computação e Programação 2009 /

8 A função sort Descrição: Ordena por ordem ascendente (por omissão) ou por ordem descendente. Sintaxe : Y = SORT(X,DIM,MODE) has two optional parameters. DIM selects a dimension along which to sort. MODE selects the direction of the sort 'ascend' results in ascending order 'descend' results in descending order The result is in Y which has the same shape and type as X. [Y,I] = SORT(X,DIM,MODE) also returns an index matrix I. Miguel Pedro Silva José Borges Computação e Programação 2009 /

9 A função sort: exemplos >> lista lista = >> [lista_ord,indices]=sort(lista) lista_ord = indices = Miguel Pedro Silva José Borges Computação e Programação 2009 /

10 A função sort: exemplos >> matriz = [4 6 2;8 3 7;9 7 1] matriz = >> matriz_ord_col = sort(matriz) matriz_ord_col = >> matriz_ord_lin = sort(matriz,2) matriz_ord_lin = Miguel Pedro Silva José Borges Computação e Programação 2009 /

11 A função sort: ordenação de strings: exemplos >> words=char('hello','howdy','hi','goodbye','ciao') words = Hello Howdy Hi Goodbye Ciao Miguel Pedro Silva José Borges Computação e Programação 2009 /

12 A função sort: ordenação de strings: exemplos >> sort(words) ans = Ce Giad Hildb Hoolo Howoyye >> sort(words,2) ans = Hello Hdowy Hi Gbdeooy Caio Miguel Pedro Silva José Borges Computação e Programação 2009 /

13 A função sortrows Descrição: Ordena cada linha como um bloco (ou grupo), e por ordem ascendente. Sintaxe : [Y,I] = SORTROWS(X) Exemplo: >> sortrows(words) ans = Ciao Goodbye Hello Hi Howdy Miguel Pedro Silva José Borges Computação e Programação 2009 /

14 A função sort: ordenação de cell de strings >> cellnomeseng={'quimica','mecanica','electrotecnia','civil'} cellnomeseng = 'Quimica' 'Mecanica' 'Electrotecnia' 'Civil' >> sort(cellnomeseng) ans = 'Civil' 'Electrotecnia' 'Mecanica' 'Quimica' Miguel Pedro Silva José Borges Computação e Programação 2009 /

15 A função sort: ordenação de cell de strings >> cellnomeseng={'naval','quimica','mecanica','electrotecnia','civil'} cellnomeseng = 'naval' 'Quimica' 'Mecanica' 'Electrotecnia' 'Civil' >> sort(cellnomeseng) ans = 'Civil' 'Electrotecnia' 'Mecanica' 'Quimica' 'naval' Miguel Pedro Silva José Borges Computação e Programação 2009 /

16 Ordenação por selecção: ordenar vectores de estruturas Exemplo: Escreva uma função que receba um array de estruturas e uma string que designa um campo numérico e que retorne o array de estruturas ordenado por ordem crescente, relativamente ao campo pedido. Miguel Pedro Silva José Borges Computação e Programação 2009 /

17 Ordenação por selecção: ordenar vectores de estruturas % Este script auxiliar cria uma array de estruturas OsMeusCDs(1) = struct('genero','rock',... 'Artista','Xutos e Pontapés',... 'Titulo','Circo de Feras',... 'Ano', 1987); OsMeusCDs(2) = struct('genero','rock',... 'Artista','Metallica',... 'Titulo','Black Album',... 'Ano', 1991); OsMeusCDs(3) = struct('genero','cubana',... 'Artista','Eliades Ochoa',... 'Titulo','Grandes Éxitos',... 'Ano', 2000); OsMeusCDs(4) = struct('genero','rock progressivo',... 'Artista','Marillion',... 'Titulo','Misplaced Childhood',... 'Ano', 1985); Miguel Pedro Silva José Borges Computação e Programação 2009 /

18 Ordenação por selecção: ordenar vectores de estruturas Miguel Pedro Silva José Borges Computação e Programação 2009 /

19 Ordenação por selecção: ordenar vectores de estruturas >> cria_array_estrut; >> outv = ordena_vec_estrut(osmeuscds,'ano'); >> outv(1) ans = Genero: 'Rock progressivo' Artista: 'Marillion' Titulo: 'Misplaced Childhood' Ano: 1985 >> outv(2) ans = Genero: 'Rock' Artista: 'Xutos e Pontapés' Titulo: 'Circo de Feras' Ano: 1987 Miguel Pedro Silva José Borges Computação e Programação 2009 /

20 Ordenação por selecção: ordenar vectores de estruturas >> outv(3) ans = Genero: 'Rock' Artista: 'Metallica' Titulo: 'Black Album' Ano: 1991 >> outv(4) ans = Genero: 'Cubana' Artista: 'Eliades Ochoa' Titulo: 'Grandes Éxitos' Ano: 2000 Miguel Pedro Silva José Borges Computação e Programação 2009 /

21 Algoritmos de ordenação: indexação A indexação é uma alternativa à ordenação de um vector. Com a indexação o vector original é deixado na sua ordem e apenas se utiliza um vector com índices que ordenam o vector original. EXEMPLO: >> lista lista = indices = >> listaord=lista(indices) listaord = Miguel Pedro Silva José Borges Computação e Programação 2009 /

22 Algoritmos de ordenação: indexação Algoritmo (ordem crescente): 1. Inicializar os valores no vector de índices: 1, 2,3, ; 2. Utilizar um algoritmo de ordenação, mas comparar os elementos na lista original utilizando o vector de índices para indexar os elementos na lista; 3. Quando o algoritmo de ordenação trocar valores, devem ser trocados os elementos do vector de índices e não os valores da lista original. Miguel Pedro Silva José Borges Computação e Programação 2009 /

23 Algoritmos de ordenação: indexação: implementação Miguel Pedro Silva José Borges Computação e Programação 2009 /

24 Algoritmos de ordenação: indexação: execução >> lista lista = >> indord=createind(lista) indord = Miguel Pedro Silva José Borges Computação e Programação 2009 /

25 Ordenação por inserção linear Insere sucessivamente um novo elemento numa lista de elementos já ordenados O resultado é uma lista ordenada Sublista tem apenas um elemento (67) Insere 33; obtém-se uma lista com 2 items Insere 21; obtém-se uma lista com 3 items Insere 84; obtém-se uma lista com 4 items Insere 49; obtém-se uma lista com 5 items Insere 50; obtém-se uma lista com 6 items Insere 75; obtém-se uma lista com 7 items Miguel Pedro Silva José Borges Computação e Programação 2009 /

26 Ordenação por inserção linear (cont.) Exemplo: Array original Array ordenado Miguel Pedro Silva José Borges Computação e Programação 2009 /

27 Ordenação por inserção linear (cont.) Exemplo: Array original Array ordenado 6 Miguel Pedro Silva José Borges Computação e Programação 2009 /

28 Ordenação por inserção linear (cont.) Exemplo: Array original Array ordenado 2 6 Miguel Pedro Silva José Borges Computação e Programação 2009 /

29 Ordenação por inserção linear (cont.) Exemplo: Array original Array ordenado Miguel Pedro Silva José Borges Computação e Programação 2009 /

30 Ordenação por inserção linear (cont.) Exemplo: Array original Array ordenado Miguel Pedro Silva José Borges Computação e Programação 2009 /

31 Ordenação por inserção linear (cont.) Exemplo: Array original Array ordenado Miguel Pedro Silva José Borges Computação e Programação 2009 /

32 Ordenação por inserção linear (cont.) Exemplo: Array original Array ordenado Miguel Pedro Silva José Borges Computação e Programação 2009 /

33 Ordenação por inserção linear (cont.): a inserção Dado o seguinte array: Como inserir o número 7 neste array? Miguel Pedro Silva José Borges Computação e Programação 2009 /

34 Ordenação por inserção linear (cont.): a inserção Para inserir o 7 nesta posição, deve-se: 1. Inserir um espaço para o valor 2. Inserir o valor 7. Miguel Pedro Silva José Borges Computação e Programação 2009 /

35 Ordenação por inserção linear (cont.): a inserção Para inserir o 7 nesta posição, deve-se: 1. Inserir um espaço para o valor 2. Inserir o valor 7. Miguel Pedro Silva José Borges Computação e Programação 2009 /

36 Ordenação por inserção linear (cont.): a inserção Para inserir o 7 nesta posição, deve-se: 1. Inserir um espaço para o valor 2. Inserir o valor 7. Miguel Pedro Silva José Borges Computação e Programação 2009 /

37 Ordenação por inserção linear (cont.): a inserção Para inserir o 7 nesta posição, deve-se: 1. Inserir um espaço para o valor 2. Inserir o valor 7. Miguel Pedro Silva José Borges Computação e Programação 2009 /

38 Ordenação por inserção linear (cont.): a inserção Para inserir o 7 nesta posição, deve-se: 1. Inserir um espaço para o valor 2. Inserir o valor 7. Miguel Pedro Silva José Borges Computação e Programação 2009 /

39 Ordenação por inserção linear (cont.): a inserção Para inserir o 7 nesta posição, deve-se: 1. Inserir um espaço para o valor 2. Inserir o valor 7. Miguel Pedro Silva José Borges Computação e Programação 2009 /

40 Ordenação por inserção linear (cont.): implementação function b = ordenaporinsercao(a) % EXERCÍCIO PARA CASA!!! Miguel Pedro Silva José Borges Computação e Programação 2009 /

41 Ordenação rápida Muito eficiente; é muitas vezes implementada de forma recursiva Estratégia Escolhe um elemento chamado de pivot Faz trocas de forma a que: Todos os elementos menores que o pivot ficam à sua esquerda Todos os elementos maiores que o pivot ficam à sua direita Divide as duas sublistas resultantes, cada uma com o seu pivot, e efectua o mesmo tipo de trocas Miguel Pedro Silva José Borges Computação e Programação 2009 /

42 Ordenação rápida (cont.) Seja 75 o pivot Procurar da direita para a esquerda por um número < 75 Procurar da esquerda para a direita por um número > 75 Trocar os números Miguel Pedro Silva José Borges Computação e Programação 2009 /

43 Ordenação rápida (cont.) Continuar, desde a direita e da esquerda, efectuando as trocas necessárias Troca-se então o pivot com o número do meio Miguel Pedro Silva José Borges Computação e Programação 2009 /

44 Ordenação rápida (cont.) Aplica-se de novo a ordenação rápida nas duas sublistas restantes Isto pode ser feito recursivamente A âncora é o caso em que a lista examinada está vazia ou contém apenas um elemento O passo recursivo (inductivo) são os casos em que a lista tem mais de um elemento Miguel Pedro Silva José Borges Computação e Programação 2009 /

45 Ordenação rápida(cont.): implementação function b = ordenacaorapida(a) % EXERCÍCIO PARA CASA!!! Miguel Pedro Silva José Borges Computação e Programação 2009 /

46 Algoritmos de procura Procura significa encontrar numa lista, ordenada ou não, um dado elemento (que se irá denominar por elemento chave) Existem vários algoritmos de procura: Procura sequencial; Procura binária; Etc. Miguel Pedro Silva José Borges Computação e Programação 2009 /

47 Procura sequencial Geralmente utilizada em listas não ordenadas! Algoritmo : 1. Utilizando um ciclo que percorra todos os elementos de uma lista, testar se o elemento na posição com índice k é igual ao elemento chave, se for retornar o índice k, caso contrário continuar a procura; 2. Se o elemento chave não for encontrado deve ser devolvido o valor 0 ou -1; Miguel Pedro Silva José Borges Computação e Programação 2009 /

48 Procura sequencial Procura elementos consecutivos numa lista Começa no primeiro Continua até encontrar o item procurado ou até chegar ao fim da lista [1] [2] [3] [4] [5] [6] [7] Miguel Pedro Silva José Borges Computação e Programação 2009 /

49 Procura sequencial: implementação Miguel Pedro Silva José Borges Computação e Programação 2009 /

50 Procura sequencial: execução >> lista lista = >> indice=seqsearch(lista,50) indice = 6 Miguel Pedro Silva José Borges Computação e Programação 2009 /

51 Procura binária Utilizada em listas ordenadas! Algoritmo : 1. Verificar se o elemento chave é igual ao elemento do meio da lista. Se for: retornar o índice k associado;caso contrário: 2. Verificar em qual das sub-listas o elemento chave se pode encontrar. Se a sub-lista estiver vazia ir para o passo 3; caso contrário ir para o passo 1; 3. Se o elemento chave não for encontrado deve ser devolvido o valor 0 ou -1. Miguel Pedro Silva José Borges Computação e Programação 2009 /

52 Procura binária O algoritmo mais eficiente para procurar numa lista ordenada (para n items, máximo de log 2 n comparações) Começa no elemento do meio Note-se que procurado é encontrado em dois passos [1] [2] [3] [4] [5] [6] [7] procurado Compara procurado com o elemento Se meio < procurado, vai para meio da sublista à direita Se meio > procurado, vai para meio da sublista à esquerda Miguel Pedro Silva José Borges Computação e Programação 2009 /

53 Procura binária: implementação Miguel Pedro Silva José Borges Computação e Programação 2009 /

54 Procura binária: execução >> lista=[11,22,33,44,55,66,77] lista = >> indice=binsearch(lista,66) indice = 6 Miguel Pedro Silva José Borges Computação e Programação 2009 /

55 A função find Descrição: Retorna os índices dos elementos que não são zero. Sintaxe : I = FIND(X) returns the linear indices corresponding to the nonzero entries of the array X. X may be a logical expression. Miguel Pedro Silva José Borges Computação e Programação 2009 /

56 A função find: exemplos >> lista=[67,33,21,84,49,50,75] lista = >> indices=find(lista==33) indices = 2 >> indices=find(lista>=33) indices = >> lista_proc=lista(indices) lista_proc = Miguel Pedro Silva José Borges Computação e Programação 2009 /

57 Referências Capítulo 12 ( ) de Stormy Attaway (2009), Matlab: A Practical Introduction to Programming and Problem Solving, Elsevier. Getting started with MATLAB: matlab/getstart.pdf Miguel Pedro Silva José Borges Computação e Programação 2009 /

Cell arrays e estruturas: exemplos

Cell arrays e estruturas: exemplos Cell arrays e estruturas: exemplos Cell arrays e estruturas: Comparação entre os dois tipos de dados; Exemplos. Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Cell arrays e estruturas

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec, LEAN - 1º Semestre 2015-2016 Aula Teorica 18 Algoritmos de ordenação Função sort D.E.M. Área Científica de Controlo Automação e Informática Industrial Wrap Up da última

Leia mais

Programação em MATLAB

Programação em MATLAB Programação em MATLAB Estruturas de Repetição Ciclo WHILE As instruções BREAK e RETURN A função ERROR Vectorização Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Estruturas de repetição

Leia mais

Programação em MATLAB

Programação em MATLAB Programação em MATLAB Estruturas de Repetição Ciclo FOR Ciclos FOR encadeados Pré-alocação de variáveis Combinar ciclos FOR com a instrução IF Instituto Superior Técnico, Dep. de Engenharia Mecânica -

Leia mais

Tópicos avançados sobre funções (cont.)

Tópicos avançados sobre funções (cont.) Tópicos avançados sobre funções (cont.) Definição de function handle Utilização de function handles Funções anónimas Funções em que os argumentos são funções (function functions) Funções com número de

Leia mais

Estruturas de dados complexas: cell arrays e structures

Estruturas de dados complexas: cell arrays e structures Estruturas de dados complexas: cell arrays e structures Cell arrays Criação de cell arrays Aceder a elementos Visualizar elementos Modificar elementos Eliminar elementos Guardar strings em cell arrays

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec - LEAN 1º Semestre 2010-2011 Aula Teórica 13 Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Alinhamento da AT 13 Estruturas de dados Cell arrays Manipulação

Leia mais

Algoritmia e Programação

Algoritmia e Programação Algoritmia e Programação Conteúdo Pesquisa em Vectores Apresentação e discussão de vários algoritmos de pesquisa. Pesquisa linear ou sequencial Pesquisa binária Ordenação de Vectores Exemplos de aplicação

Leia mais

Manipulação de strings e conversão entre tipos de dados

Manipulação de strings e conversão entre tipos de dados Manipulação de strings e conversão entre tipos de dados Avaliação de strings A função eval() A estrutura try-catch A função IS para strings Conversão entre tipos de dados Instituto Superior Técnico, Dep.

Leia mais

Tópicos avançados sobre funções

Tópicos avançados sobre funções Tópicos avançados sobre funções Definição de function handle Utilização de function handles Funções anónimas Funções em que os argumentos são funções (function functions) Funções com número de parâmetros

Leia mais

Manipulação de strings e conversão entre tipos de dados

Manipulação de strings e conversão entre tipos de dados e conversão entre tipos de dados Criação de variáveis do tipo string: As strings como arrays uni-dimensionais Operações sobre strings Concatenação Formatação Comparação Procura, Substituição e Separação

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec - LEAN 1º Semestre 2010-2011 Aula Teórica 16 Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Alinhamento da AT 16 Estrutura try-catch Processo de leitura/escrita

Leia mais

Computação e Programação

Computação e Programação Computação e Programação 3ª Aula de Problemas Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Exercícios Resolvidos [Baseado no Livro 1] (Ver referências no último slide) 2.28 Pretende-se

Leia mais

Projecto e Desenvolvimento de Programas

Projecto e Desenvolvimento de Programas Projecto e Desenvolvimento de Programas Projecto de programas Metodologia de desenvolvimento Construção de algoritmos Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Programa de Computador

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec, LEAN - 1º Semestre 2015-2016 Aula Teórica 6 Estruturas de Repetição (FOR, WHILE) A instrução break Pré-alocação de variáveis D.E.M. Área Científica de Controlo Automação

Leia mais

Ordenação e Pesquisa

Ordenação e Pesquisa Ordenação e Pesquisa Luís Lopes DCC-FCUP Estruturas de Dados Pesquisa de Informação A pesquisa eficiente de informação é extremamente relevante, seja: num catálogo indexado por uma relação de ordem, e.g.

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec - LEAN 1º Semestre 2010-2011 Aula Teórica 10 Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Alinhamento da AT 10 Passagem de argumentos por valor Âmbito

Leia mais

6. Pesquisa e Ordenação

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

Leia mais

Programação em MATLAB

Programação em MATLAB Programação em MATLAB Desenvolvimento de software em MATLAB Scripts ou M-files Funções definidas pelo programador Estruturas de Selecção Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII

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

Computação e Programação

Computação e Programação Computação e Programação MEMec - LEAN 1º Semestre 2010-2011 Aula Teórica 4 Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Alinhamento da AT 4 Construção de programas Actividades de teste

Leia mais

Computação e Programação

Computação e Programação Computação e Programação 10ª Aula de Problemas Tópicos Avançados sobre Funções Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Problema 1 3. The velocity of sound in air is 49.02xT^(1/2)

Leia mais

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

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

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec, LEAN - 1º Semestre 2015-2016 Aula Teórica 20 Números complexos Tópicos Avançados sobre Funções Funções com número variável de argumentos de entrada e saída Funções como

Leia mais

Computação e Programação 2009 / 2010

Computação e Programação 2009 / 2010 Computação e Programação 2ª Aula de Problemas Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Exercícios Resolvidos [Livro 1] (Ver referências no slide 20) 3.3 Write a program to convert

Leia mais

Manipulação avançada de ficheiros

Manipulação avançada de ficheiros Manipulação avançada de ficheiros Modularidade na manipulação de ficheiros Caso de estudo Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Revisão de instruções leitura/escrita comando

Leia mais

Divisão-e-Conquista ( ) CAL ( ) MIEIC/FEUP. ./rr (1) Técnicas de Concepção de Algoritmos

Divisão-e-Conquista ( ) CAL ( ) MIEIC/FEUP. ./rr (1) Técnicas de Concepção de Algoritmos 1 Técnicas de Concepção de Algoritmos (1ª parte): divisão e conquista R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes CAL, MIEIC, FEUP Fevereiro de 2011 2 Divisão e Conquista (divide and

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

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

Estruturas de dados complexas: cell arrays e structures

Estruturas de dados complexas: cell arrays e structures Estruturas de dados complexas: cell arrays e structures Structures (estruturas) Criação de estruturas Alterar, acrescentar e remover campos (fields) Visualizar (apresentar) uma estrutura Estruturas como

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

Computação e Programação

Computação e Programação Computação e Programação MEMec, LEAN - º Semestre 205-206 Expressões Relacionais Estruturas de Selecção Simples Genéricas Aula Teórica 5 D.E.M. Área Científica de Controlo Automação e Informática Industrial

Leia mais

Algoritmos de ordenação

Algoritmos de ordenação Ordenação rápida ( Quicksort ) Baseia-se num princípio muito simples que, quando aplicado de forma recursiva, acaba por ordenar o vetor. Este princípio é composto por 2 passos essenciais: 1. Escolher um

Leia mais

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

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

Leia mais

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

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

Leia mais

ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres

ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres ESTRUTURA DE DADOS E ALGORITMOS Árvores Binárias de Busca Cristina Boeres Árvore Binária de Busca 30! construída de tal forma que, para cada nó: nós com chaves menores estão na sub-árvore esquerda nós

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

Computação e Programação. MEMec - LEAN 1º Semestre

Computação e Programação. MEMec - LEAN 1º Semestre Computação e Programação MEMec - LEAN 1º Semestre 2010-2011 Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Objectivos de CP Pretende-se promover o desenvolvimento de, Competências que

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

Computação e Programação

Computação e Programação Computação e Programação MEMec, LEAN - 1º Semestre 2015-2016 Aula Teórica 10 Exemplo de desenvolvimento de Programa Modular: Máquina de venda de bilhetes D.E.M. Área Científica de Controlo Automação e

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

Dois parâmetros essenciais t T tempo de transferência de um bloco. assume-se igual para operações de leitura e escrita

Dois parâmetros essenciais t T tempo de transferência de um bloco. assume-se igual para operações de leitura e escrita Bases de Dados Algoritmos de processamento Custo de operação Dois parâmetros essenciais t T tempo de transferência de um bloco assume-se igual para operações de leitura e escrita t S tempo de localização

Leia mais

1.a) Qual a diferença entre uma linguagem de programação de alto nível e uma linguagem de programação de baixo nível?

1.a) Qual a diferença entre uma linguagem de programação de alto nível e uma linguagem de programação de baixo nível? P1 Conceitos (2,4 valores) 1.a) Qual a diferença entre uma linguagem de programação de alto nível e uma linguagem de programação de baixo nível? (0.8v) 1.b) Indique três vantagens de criar um programa

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

Aula 3 Listas Lineares Sequenciais Ordenadas. prof Leticia Winkler

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

Leia mais

Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Objectivos e tarefas

Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Objectivos e tarefas Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Objectivos e tarefas Aplicar os passos do processo de desenvolvimento para a construção de um algoritmo 1 Exercícios Resolvidos 1 - EXERCÍCIO

Leia mais

Computação e Programação

Computação e Programação Computação e Programação 7ª Aula de Problemas Sub-funções; Vectorização; Manipulação de strings; Estrutura try-catch Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Problema 1 Seja um

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

2. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.

2. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados. Capítulo 5 Abstracção de dados 5. Exercícios de revisão. Diga o que é um tipo abstracto de informação.. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.

Leia mais

Sistemas e Sinais. Laboratório 0 (parte c) Miguel Pedro Silva e João Reis

Sistemas e Sinais. Laboratório 0 (parte c) Miguel Pedro Silva e João Reis Sistemas e Sinais Laboratório 0 (parte c) (MATLAB : Cell arrays e structures) Miguel Pedro Silva e João Reis Instituto Superior Técnico, Dep. de Engenharia Mecânica - Secção Sistemas, Grupo de Controlo

Leia mais

Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo

Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária Túlio Toffolo www.decom.ufop.br/toffolo Pesquisa em Memória Primária n Introdução - Conceitos Básicos n Pesquisa Sequencial n Pesquisa Binária n Árvores

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

Bases de Dados. Remoções em árvores B + Remoção em árvores B +

Bases de Dados. Remoções em árvores B + Remoção em árvores B + Bases de Dados Remoções em árvores B + Remoção em árvores B + Remoção procurar o registo e removê-lo do ficheiro se o apontador ou contentor ficar vazio, remover a entrada (valor, apontador) da folha se

Leia mais

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

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

Leia mais

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

BUSCA EM ARRAYS. Prof. André Backes. Ato de procurar por um elemento em um conjunto de dados

BUSCA EM ARRAYS. Prof. André Backes. Ato de procurar por um elemento em um conjunto de dados BUSCA EM ARRAYS Prof. André Backes Definição 2 Ato de procurar por um elemento em um conjunto de dados Recuperação de dados armazenados em um repositório ou base de dados A operação de busca visa responder

Leia mais

ALGORITMOS DE ORDENAÇÃO RECURSIVOS

ALGORITMOS DE ORDENAÇÃO RECURSIVOS 1/14 ALGORITMOS DE ORDENAÇÃO RECURSIVOS Ordenação rápida ( Quicksort ) 2/14 Ordenação rápida ( Quicksort ) Ideia - Baseia-se num princípio muito simples que, quando aplicado recursivamente, acaba por ordenar

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

Pesquisa: operação elementar

Pesquisa: operação elementar Pesquisa: operação elementar uma das operações mais usadas em programação pesquisas em: vectores, matrizes, tabelas de registos, ficheiros, tipos de dados estruturados (hierarquicos),... necessidade de

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

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Listas e árvores Listas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral Diversas aplicações necessitam de estruturas

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

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

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

Bases de Dados. Índices. Discos. transferência rápida e aos bytes. transferência lenta e em blocos (512B ~ 4KB) memória. disco BD / aplicação

Bases de Dados. Índices. Discos. transferência rápida e aos bytes. transferência lenta e em blocos (512B ~ 4KB) memória. disco BD / aplicação Bases de Dados Índices Discos transferência lenta e em blocos (512B ~ 4KB) transferência rápida e aos bytes memória disco BD / aplicação 2 1 Discos 7200rpm = 120 rot/s 1 5 platters Ø 8.9 cm 50000 ~ 100000

Leia mais

Funções definidas pelo programador: Passagem de argumentos Formas de Funções comuns Programas modulares

Funções definidas pelo programador: Passagem de argumentos Formas de Funções comuns Programas modulares Computação e Programação MEMec, LEAN - 1º Semestre 2014-2015 Aula Teórica 8 Funções definidas pelo programador: Passagem de argumentos Formas de Funções comuns Programas modulares D.E.M. Área Científica

Leia mais

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

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

Leia mais

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

Computação e Programação 2009 / 2010

Computação e Programação 2009 / 2010 Computação e Programação 4ª Aula de Problemas Estruturas de selecção (if-, if-if, switch) Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Problema 1 Escrevaum script quepedeaoutilizadorum

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

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

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

EAD ARVORE BINÁRIA - ARMAZENAMENTO NÃO SEQUENCIAL COM VETORES

EAD ARVORE BINÁRIA - ARMAZENAMENTO NÃO SEQUENCIAL COM VETORES EAD ARVORE BINÁRIA - ARMAZENAMENTO NÃO SEQUENCIAL COM VETORES Estrutura de dados: - Arvore é um vetor em que cada componente (nodo) é composto por 3 campos: - Elemento (informação a tratar), que pode ser

Leia mais

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013 Lista 1 - PMR2300 Fabio G. Cozman 3 de abril de 2013 1. Qual String é impressa pelo programa: p u b l i c c l a s s What { p u b l i c s t a t i c void f ( i n t x ) { x = 2 ; p u b l i c s t a t i c void

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

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

USP - ICMC - SSC SSC o. Semestre Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]

USP - ICMC - SSC SSC o. Semestre Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ] USP - ICMC - SSC SSC 0300-2o. Semestre 2013 Disciplina de [ Eng. Elétrica / Automação ] Prof. Dr. Fernando Santos Osório / PAE: Rafael Klaser (LRM / ICMC) LRM - Laboratório de Robótica Móvel do ICMC /

Leia mais

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas) Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 Lista Obrigatória 02 - Prof. Rafael Oliveira (Deve ser entregue em PDF via Moodle: Escolha apenas 5 exercícios para entrega) Exercício 01

Leia mais

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

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

Leia mais

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

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

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

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

Leia mais

Programação imperativa

Programação imperativa Capítulo 8 Programação imperativa 8.1 Exercícios de revisão 1. Distinga entre programação imperativa e programação funcional. 2. Explique a necessidade da introdução do operador de atribuição. 3. Diga

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

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática

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

Computação e Programação

Computação e Programação Computação e Programação MEMec, LEAN - 1º Semestre 2015-2016 Aula Teórica 14 Ficheiros de dados Processo de leitura/escrita em ficheiros de texto Manipulação de uma base de dados Ficheiros de dados do

Leia mais

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

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

Leia mais

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

Computação e Programação

Computação e Programação Computação e Programação MEMec, LEAN - 1º Semestre 2015-2016 Aula Teórica 9 Abordagem ao projecto de programas s, Abordagem Top-Down, Modularidade Processo de Desenvolvimento Tipos de Erros e Casos de

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

Filas de Prioridade. Uma fila de prioridade pode ser vista como uma generalização das filas com as seguintes duas operações:

Filas de Prioridade. Uma fila de prioridade pode ser vista como uma generalização das filas com as seguintes duas operações: Filas de Prioridade e Heaps 9.1 Filas de Prioridade Uma fila de prioridade pode ser vista como uma generalização das filas com as seguintes duas operações: inserir um elemento na fila; remover o elemento

Leia mais

UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio;

UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio; UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio; e-mail: sandra@icmc.usp.br Lista de Exercícios Árvores, Árvores Binárias, Árvores

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

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