Ordenação - Motivação

Documentos relacionados
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008/1 2 PERÍODO MÓDULO 3 AVALIAÇÃO MP2 DATA 2/10/2008 ESTRUTURAS DE DADOS 2008/2

Método de ordenação - objetivos:

Arquivos Indexados por Chaves Secundárias. Vanessa Braganholo

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão

Exercício. Exercício

Banco de Dados. Banco de Dados Parte 2. Alcides Pamplona Alcides Pamplona Linguagem de Programação CESBD 2010

Inteligência Artificial

ALGORITMOS E COMPLEXIDADE PROBLEMAS E ALGORITMOS

Auxílio Estudantil Fase de análise

INF 1010 Estruturas de Dados Avançadas

2 Segmentação de imagens e Componentes conexas

Organização e Arquitetura de Computadores. Ivan Saraiva Silva

Obtenção Experimental de Modelos Matemáticos Através da Reposta ao Degrau

Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves

Perguntas frequentes graduação sanduíche Ciência sem Fronteiras

MODELO SUGERIDO PARA PROJETO DE PESQUISA

Redes de Computadores

SISTEMAS DISTRIBUÍDOS

tipo e tamanho e com os "mesmos" elementos do vetor A, ou seja, B[i] = A[i].

Disciplina: Unidade III: Prof.: Período:

,QVWDODomR. Dê um duplo clique para abrir o Meu Computador. Dê um duplo clique para abrir o Painel de Controle. Para Adicionar ou Remover programas

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

Implementação de um serviço de correio eletrônico na Intranet do Pólo de Touros utilizando o ambiente SQUIRELMAIL e POSTFIX em um Servidor Linux

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

Notas de aula de Lógica para Ciência da Computação. Aula 11, 2012/2

Assessoria Técnica de Tecnologia da Informação - ATTI. Projeto de Informatização da. Secretaria Municipal de Saúde do. Município de São Paulo

Prof. José Maurício S. Pinheiro - UGB

Normas de Utilização do Laboratório de Fisiologia e Aspectos Práticos e Éticos da Experimentação Animal Curso de Nutrição (UFV/CRP)

POLÍTICAS DE RECURSOS HUMANOS UNIDADE RECURSOS HUMANOS E PROCESSOS GERÊNCIA DE GESTÃO DE PROCESSOS

Probabilidade. Evento (E) é o acontecimento que deve ser analisado.

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza

UNIVERSIDADE ESTADUAL DO CENTRO-OESTE - UNICENTRO CURSO DE PÓS GRADUAÇÃO EM MÍDIAS NA EDUCAÇÃO JULIANA LEME MOURÃO ORIENTADOR: PAULO GUILHERMETI

MINERAÇÃO DE DADOS. Thiago Marzagão MINERAÇÃO DE TEXTOS. Thiago Marzagão (UnB) MINERAÇÃO DE DADOS 1/ / 25

Modelo Comportamental

EDITAL DE SELEÇÃO PARA MESTRADO 2016 PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA DE PRODUÇÃO (UNIFEI)

Tabelas Hash. Aleardo Manacero Jr.

Introdução. Aula 02. Estrutura de Dados II. UFS - DComp Adaptados a partir do material da Profa. Kenia Kodel Cox

Ordenação e Pesquisa de Dados. Aula 07 Insertion Sort e Bubble Sort

TESTES SOCIOMÉTRICOS

Manual do Usuário Sistema de Acuidade Visual Digital

HEMOVIDA (CICLO DO SANGUE - Gerenciamento de estoque para grandes eventos)

Aula 10: Escalonamento da CPU

Inteligência de negócios do laboratório DESCUBRA INFORMAÇÕES ÚTEIS DE DADOS OPERACIONAIS DO LABORATÓRIO

MODELAGENS. Modelagem Estratégica

Gerência de Memória. Algoritmos de Substituição de Páginas

13/09/2011. Atividades. Aula 5: REDE PERT/CPM PRINCÍPIOS DO PERT-CPM

Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios

Arquivos Seqüenciais Atualização em Lote

REGULAMENTO DO CURSO DE ESPECIALIZAÇÃO EM DIREITO FISCAL. (Aprovado pelo Conselho Científico em reunião de 7 de março de 2012)

GUIA SOBRE A APLICAÇÃO DOS ASPECTOS LINGUÍSTICOS DA CARTILHA DE ADESÃO À AGENCE UNIVERSITAIRE DE LA FRANCOPHONIE

OPERAÇÕES COM FRAÇÕES

ESTATÍSTICA DESCRITIVA:

ANÁLISE DE CIRCUITOS I ( AULA 03)

Sistemas Distribuídos

Redação Publicitária reflexões sobre teoria e prática 1

GGI026 - Árvore balanceada

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

8 Crie um pequeno sistema para controle automatizado de estoque, com os seguintes registros:

Curso de Inverno - CECID

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR. Prof. Angelo Augusto Frozza, M.Sc.

APRESENTAÇÃO TRABALHOS ACADÊMICOS SEGUNDO A NBR 14724

ALTERAÇÕES TORÁCICAS CORREÇÕES CIRÚRGICAS

REGULAMENTO DOS REGIMES DE REINGRESSO E DE MUDANÇA DE PAR INSTITUIÇÃO/CURSO DA ESCOLA SUPERIOR ARTÍSTICA DO PORTO (ESAP)

Processo de Gerenciamento do Catálogo de Serviços de TIC

Gerenciamento dos Riscos do Projeto (PMBoK 5ª ed.)

Testes em Laboratório - Análise

CRIAÇÃO DE TABELAS NO ACCESS. Criação de Tabelas no Access

MANUAL DO AVALIADOR O que é uma Feira de Ciência? Por que avaliar os trabalhos? Como os avaliadores devem proceder?

Leis do Jogo do IRB (Lei 3) Número de jogadores de uma equipa e as substituições permitidas

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA INF INTRODUÇÃO À INFORMÁTICA

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

Despacho n.º /2015. Regulamento Académico dos Cursos de Pós-Graduação não Conferentes de Grau Académico do Instituto Politécnico de Leiria (IPLeiria)

CHAMADA MCT / FINEP ENERGIA DE PRODUTOS E SERVIÇOS COM TECNOLOGIA INOVADORA NA ÁREA DE

Prof. Daniela Barreiro Claro

Manual de Utilização. Ao acessar o endereço chegaremos a seguinte página de entrada: Tela de Abertura do Sistema

Processamento de Dados aplicado à Geociências. AULA 1: Introdução à Arquitetura de Computadores

PRÓ-REITORIA DE GRADUAÇÃO

BCC202 - Estrutura de Dados I

ENG1000 Introdução à Engenharia

MN03 - MANUAL DE CONFIGURAÇÃO DA VPN PARA ALUNOS

ENGENHARIA DE SOFTWARE

Computação Gráfica - 12

SICEEL. Simpósio de Iniciação Científica da Engenharia Elétrica. Edital de Abertura

Decreto-Lei nº139 /2012, de 5 de junho, alterado pelo Despacho Normativo n.º1-g/2016

FATURA ELETRÔNICA DO PRESTADOR Layout do Arquivo Texto Versão 1.1.1

Como Elaborar uma Proposta de Projeto

P24 Criar Plano Diretor de Tecnologia da Informação e Comunicação 2011/2012 Líder: Maria Cecília Badauy

Análise de Requisitos

A8-0215/1 ALTERAÇÕES DO PARLAMENTO EUROPEU * à proposta da Comissão

TUTORIAL MATLAB Victor Breder 2016

MBA em Gerenciamento de Projetos. Teoria Geral do Planejamento. Professora: Maria Erileuza do Nascimento de Paula

Portaria n.º 1098/2008

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases)

Gerenciamento do Escopo do Projeto (PMBoK 5ª ed.)

UNIVERSIDADE ESTADUAL DO CEARÁ. Relatório Final: Estrutura de Dados II

Aula 01 Introdução Custo de um algoritmo, Funções de complexidad e Recursão

INTRODUÇÃO À PROGRAMAÇÃO II VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS

Transcrição:

Ordenação - Motivação Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno

Algoritmos para ordenação de dados

Requisito comum em aplicações: apresentar informações ordenadas; Alternativas: Manter os dados sempre ordenados (as inclusões são feitas mantendo-se a ordem desejada); Alto custo computacional (pois a cada inclusão a informação precisa descobrir o seu lugar); Pouca flexibilidade (funciona apenas para um único critério de ordenação); Aplicar algoritmos de ordenação em dados desordenados; Maior flexibilidade (diferentes critérios podem ser aplicados);

Sorting Requisitos: Eficácia de Tempo de execução (devem ser rápidos); Consumo de memória (devem ocupar pouca memória); Aplicação Algoritmos de ordenação são normalmente aplicados em listas que possuem uma relação de vizinhança em todos os nodos: como listas duplamente encadeadas e vetores; A entrada do algoritmo é um conjunto desordenado e a saída é o mesmo conjunto, porém ordenado.

Quanto a localização dos dados: Interna todos os registros cabem na mem. principal; Externa os registros estão guardados em arquivos e precisam ser ordenados parcialmente em mem. principal; Quanto a estabilidade Estáveis Em uma reordenação (por outro campo) a ordem original não é alterada; Instáveis Se uma reordenação ocorrer a ordem original pode ser alterada. Ex. Suponhamos uma lista de nomes de pessoas e suas idades, ordenada alfabeticamente. Se uma método de ordenação for aplicado pelo campo idade o método estável consegue também manter a ordem alfabética nos indivíduos de mesma idade enquanto que o método instável não (métodos instáveis geralmente são mais eficientes).

Aula 13 Selection Sort Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno

Ordenação por Seleção http://www.sorting-algorithms.com

Selection Sort Ordenação por seleção; Algoritmo de simples implementação, recomendado para pequenos conjuntos de dados; Consiste em passar sempre o menor valor da lista para a primeira posição, depois, o de segundo menor valor para a segunda posição, e assim sucessivamente com os (n-1) elementos restantes, até os últimos dois elementos.

Selection Sort Algoritmo: procurar o menor elemento e trocar com o elemento na primeira posição; procurar o segundo menor elemento e trocar com o elemento na segunda posição; proceder assim até a ordenação estar completa. Implementação: Laços de repetição aninhados.

Selection Sort (simulação) Dados originais 1ª Iteração 2ª Iteração

Selection Sort (simulação) 3ª Iteração 4ª Iteração Neste caso não há troca

Algoritmo - Selection Sort void selectionsort(int* vet, int tam) { } int i, j, min; for (i = 0; i < (tam-1); i++) { min = i; } for (j = (i+1); j < tam; j++) { if(vet[j] < vet[min]) min = j; } if (i!= min) { troca(&vet[i],&vet[min]); }

Aula 14 Insertion Sort Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno

Ordenação por Inserção http://www.sorting-algorithms.com

Insertion Sort Ordenação por inserção; Consiste em percorrer uma lista de elementos da esquerda para a direita e à medida em que se avança os elementos mais à esquerda vão sendo ordenados. É como se o elemento a ser analisado fosse inserido no local correto da lista movimentando os demais elementos para a direita;

Insertion Sort Algoritmo: O insertion sort consiste em manter os i primeiros elementos ordenados entre si. No passo i, insere o i+1 elemento na posição correta entre os i primeiros. No passo i+1, insere o i+2 elemento na posição correta entre os i+1 primeiros. No passo i+2, insere o i+3 elemento na posição correta entre os i+2 primeiros.... A inserção do item em uma posição adequada é realizada movendo-se as chaves maiores para a direita de forma a criar uma posição vazia.

Insertion Sort (simulação) Dados originais 1ª Iteração 2ª Iteração

Insertion Sort (simulação) 3ª Iteração 4ª Iteração Dados Ordenados

Algoritmo Insertion Sort void insertionsort(int* vet, int tam) { int i, j, chave; } for(j=1; j<tam; j++) { chave = vet[j]; i = j-1; while(i >= 0 && vet[i] > chave) { vet[i+1] = vet[i]; i--; } vet[i+1] = chave; }

Exercícios para fixação

Que tal implementar uma aplicação para medir o tempo de execução de diferentes algoritmos de ordenação? Experimente vetores de igual tamanho em diferentes ordens (já ordenados, ordem aleatório, ordem inversa); Incremente essa aplicação ao longo das aulas incluindo todos os algoritmos estudados até então.