Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Métodos de Ordenação, Notas de estudo de Algoritmos

tempo gasto pela ordenação. Ⅰ Sendo n o número registros no arquivo, as medidas de complexidade relevantes são: Ⅰ Número de comparações C(n) entre chaves.

Tipologia: Notas de estudo

2022

Compartilhado em 07/11/2022

Pele_89
Pele_89 🇧🇷

4.2

(38)

229 documentos

1 / 46

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Métodos de Ordenação
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e

Pré-visualização parcial do texto

Baixe Métodos de Ordenação e outras Notas de estudo em PDF para Algoritmos, somente na Docsity!

Métodos de Ordenação

Conceitos básicos sobre

ordenação

S Ordenar corresponde ao processo de rearranjar um conjunto

de objetos em uma ordem específica.

S Objetivo da ordenação:

S facilitar a recuperação posterior de elementos do conjunto

ordenado.

S Os algoritmos trabalham sobre os registros de um arquivo.

Conceitos básicos sobre

ordenação

S Notação

S Sejam os itens: a1; a2;... ; an.

S Ordenar consiste em permutar estes itens em uma ordem

ak1;ak2;... ; akn tal que, dada uma função de ordenação f, tem-

se a seguinte relação:

S f(ak1) < f(ak2) < : : : < f(akn)

S A função de ordenação é definida sobre o campo chave.

S A relação < deve satisfazer as condições:

S Apenas uma das três condições é verdadeira: a < b, a = b, a > b. S Se a < b e b < c então a < c.

Conceitos básicos sobre

ordenação

S Qualquer tipo de chave sobre o qual exista uma regra de ordenação bem- definida pode ser utilizada. S Um método de ordenação é estável se a ordem relativa dos itens com chaves iguais não se altera durante a ordenação. S Na escolha de um algoritmo de ordenação interna deve ser considerado o tempo gasto pela ordenação. S Sendo n o número registros no arquivo, as medidas de complexidade relevantes são: S Número de comparações C(n) entre chaves. S Número de movimentações M(n) de itens do arquivo.

Ordenação direta e indireta

S Ordenação indireta → Exemplo:

Vetor antes da ordenação Vetor após a ordenação

Ordenação Interna

S Os métodos de ordenação interna são classificados em dois tipos:

S Métodos Simples:

S mais recomendados para conjuntos pequenos de dados. S Usam mais comparações, S produzem códigos menores e mais simples;

S Métodos Eficientes ou Sofisticados:

S adequados para conjuntos maiores de dados. S Usam menos comparações, S produzem códigos mais complexos e com muitos detalhes.

Selection Sort

S Ideia do Selection Sort é:

S a cada passagem pelo vetor, selecionar o menor elemento e colocar este elemento o mais a esquerda possível.

S Um algoritmo de ordenação bastante simples.

S Recomendado para conjuntos pequenos.

S Etapas:

S Procurar menor elemento e trocar com o elemento na 1ª posição; S Procurar o 2° menor elemento e trocar com o elemento na 2 ª posição; S Proceder assim até ordenação estar completa.

Selection Sort

  • Exemplo^0 1 2 3 4
    • Chaves iniciais
      • i =
      • i =
      • i =
      • i =
      • i =

Insertion Sort

S Ideia do insertion Sort: considerar os elementos um a um e inseri-

los em seu lugar entre os elementos já tratados (mantendo essa

ordenação).

S Ex: ordenar cartas de jogar.

S Inserção implica em arranjar novo espaço.

S Mover um número elevado de elementos uma posição para a

direita.

S Elementos à esquerda do índice corrente estão ordenados mas não

necessariamente na sua posição final:

S podem ainda sofrer deslocamento à direita para dar lugar a elementos menores encontrados posteriormente

Insertion Sort

S Etapas:

S Em cada passo a partir de i=2 faça:

S Selecione o i-ésimo item da sequência fonte.
S Coloque-o no lugar apropriado na sequência destino de acordo
com o critério de ordenação.

Insertion Sort

S O número mínimo de comparações e movimentos ocorre quando os

itens estão originalmente em ordem.

S O número máximo ocorre quando os itens estão originalmente na

ordem reversa.

S É o método a ser utilizado quando o arquivo está “quase” ordenado.

S É um bom método quando se deseja adicionar uns poucos itens a um

arquivo ordenado.

S O algoritmo de ordenação por inserção é estável pois deixa os

registros com chaves iguais na mesma posição relativa.

Insertion x Selection

S Arquivos já ordenados: S Insertion: algoritmo descobre imediatamente que cada item já está no seu lugar (custo linear) S Selection: ordem no arquivo não ajuda (custo quadrático) S Adicionar alguns itens a um arquivo já ordenado: S Insertion sort é o método a ser usado em arquivos “quase ordenados” S Comparações: S Insertion tem um número médio de comparações que é aproximadamente a metade do Selection S Movimentações: S Selection tem um número médio de comparações que cresce linearmente com n, enquanto que a média de movimentações no Insertion cresce com o quadrado de n.

Bubble Sort

Exemplo

Chaves iniciais 44 12 55 42 94 18

1ª passagem

2ª passagem

3ª passagem

4ª passagem

Bubble Sort

S Método muito simples, mas de custo elevado. S Adequado apenas para pequenos arquivos. S Ruim se os registros são muito grandes. S Método extremamente lento: S só faz comparações entre posições adjacentes S É o método mais ineficiente entre os métodos simples S Melhor caso: vetor já ordenado S Pior caso: vetor de entrada em ordem reversa