Algoritmos de ordenação. e de procura
|
|
- David Fidalgo Azambuja
- 6 Há anos
- Visualizações:
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: Comparação entre os dois tipos de dados; Exemplos. Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Cell arrays e estruturas
Leia maisComputaçã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 maisProgramaçã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 maisProgramaçã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 maisTó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 maisEstruturas 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 maisComputaçã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 maisAlgoritmia 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 maisManipulaçã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 maisTó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 maisManipulaçã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 maisComputaçã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 maisComputaçã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 maisProjecto 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 maisComputaçã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 maisOrdenaçã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 maisComputaçã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 mais6. 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 maisProgramaçã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 maisALGORITMOS 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 maisComputaçã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 maisComputaçã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 maisCapí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 maisComputaçã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 maisComputaçã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 maisManipulaçã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 maisDivisã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 maisAlgoritmos 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 maisArquivos 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 maisEstruturas 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 maisMÉ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 maisComputaçã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 maisAlgoritmos 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 maisSUMÁ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 maisMC102 - 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 maisESTRUTURA 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 maisOrdenaçã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 maisMé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 maisComputaçã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 maisMÉ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 maisMé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 maisComputaçã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 maisAlgoritmos 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 maisDois 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 mais1.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 maisOrdenaçã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 maisAula 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 maisInstituto 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 maisComputaçã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 maisAlgoritmos 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 mais2. 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 maisSistemas 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 maisAula 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 maisMé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 maisBases 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 maisAprendendo 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 maisOs 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 maisBUSCA 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 maisALGORITMOS 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 maisMé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 maisPesquisa: 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 maisIntroduçã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
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 maisheapsort (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 maisBanco 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 maisORDENAÇÃ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 maisBases 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 maisFunçõ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 maisDepartamento 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 maisConteú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 maisComputaçã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 maisVectores: 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 maisBusca 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 maisBusca 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 maisMé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 maisEAD 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 maisLista 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 maisBubble 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 maisAná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 maisUSP - 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 maisIntroduçã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 maisListas 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 maisMé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 maisINF111 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
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 maisProgramaçã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 maisAná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 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 maisAlgoritmos 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 maisComputaçã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
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 maisBCC202 - 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 maisComputaçã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 maisTrabalho: 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 maisFilas 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 maisUNIVERSIDADE 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 maisClassificaçã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 maisALGORITMOS 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