André Luiz do Vale Soares

Livre

0
0
103
1 year ago
Preview
Full text

  27/11/2013

  1 Ordenação de Vetores André Luiz do Vale Soares Problema 

  Ordenar os elementos de um vetor em ordem crescente.

  

Um vetor com elementos ordenados

permite e facilita a utilização de métodos eficientes de pesquisa.

  Métodos mais simples 

  Ordenação por Inserção 

  Ordenação por Seleção 

  

Ordenação pelo método de “bolhas” (Bubblesort) Outros métodos 

  Quicksort 

  Mergesort 

  Heapsort 

  E muitos outros Ordenação por Inserção 

  

Baseia-se na forma como muitas pessoas

ordenam elementos de um conjunto: 

  Professor ordena alfabeticamente provas 

  Jogador ordena cartas de baralho Ordenação por Inserção 

  

Consiste em percorrer o vetor da esquerda para a

direita.

   À medida em que avança, vai deixando os elementos mais à esquerda ordenados.

  

Ou seja, à medida em que avança, se encontra um

elemento “fora de lugar”, desloca todos os

elementos que estão à sua esquerda, até achar o

lugar correto do elemento em consideração.

   Começa-se a ordenar a partir do segundo elemento do vetor Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Maior ? Sim Não Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Maior ? Sim Não Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  6

  8

  9

  7

  4

  3

  1

  2 A

  5 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  6

  8

  9

  7

  4

  3

  1

  2 A

  5 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  5

  6

  8

  9

  4

  3

  1

  2 A

  7 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  5

  6

  8

  9

  4

  3

  1

  2 A

  7 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  5

  6

  7

  8

  9

  3

  1

  2 A

  4 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  5

  6

  7

  8

  9

  3

  1

  2 A

  4 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  5

  6

  7

  8

  9

  3

  1

  2 A

  4 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  5

  6

  7

  8

  9

  3

  1

  2 A

  4 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  5

  6

  7

  8

  9

  3

  1

  2 A

  4 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  4

  5

  6

  7

  8

  9

  1

  2 A

  3 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  4

  5

  6

  7

  8

  9

  1

  2 A

  3 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  4

  5

  6

  7

  8

  9

  1

  2 A

  3 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  4

  5

  6

  7

  8

  9

  1

  2 A

  3 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  4

  5

  6

  7

  8

  9

  1

  2 A

  3 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  4

  5

  6

  7

  8

  9

  1

  2 A

  3 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  3

  4

  5

  6

  7

  8

  9

  2 A

  1 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  3

  4

  5

  6

  7

  8

  9

  2 A

  1 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  3

  4

  5

  6

  7

  8

  9

  2 A

  1 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  3

  4

  5

  6

  7

  8

  9

  2 A

  1 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  3

  4

  5

  6

  7

  8

  9

  2 A

  1 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  3

  4

  5

  6

  7

  8

  9

  2 A

  1 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  3

  4

  5

  6

  7

  8

  9

  2 A

  1 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  1

  3

  4

  5

  6

  7

  8

  9 A

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  1

  3

  4

  5

  6

  7

  8

  9 A

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  1

  3

  4

  5

  6

  7

  8

  9 A

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  1

  3

  4

  5

  6

  7

  8

  9 A

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  1

  3

  4

  5

  6

  7

  8

  9 A

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  1

  3

  4

  5

  6

  7

  8

  9 A

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro

  1

  3

  4

  5

  6

  7

  8

  9 A

  2 Ordenação por Inserção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Algoritmo

  algoritmo “Ordenação pelo Método de Inserção” var A: vetor[1..10] de inteiro i,j,pivo: inteiro inicio para i de 2 ate 10 faca pivo <- A[i] j <- i

  • – 1 enquanto (pivo < A[j]) e (j >= 1) faca A[j+1] <- A[j] j <- j – 1 se (j < 1) entao interrompa fimse fimenquanto A[j+1] <- pivo fimpara fimalgoritmo
Ordenação por Seleção 

  Consiste em percorrer o vetor da esquerda para a direita.

  

Quando achar o menor elemento, troca-o com o

elemento da posição mais à esquerda.

   Desta forma, ao final de cada iteração, garante que o menor elemento está na posição mais à esquerda do vetor.

   Continua as iterações a partir do elemento subsequente ao menor. Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  6

  8

  5

  9

  7

  4

  3

  1

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  8

  5

  9

  7

  4

  3

  1

  6

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  8

  5

  9

  7

  4

  3

  1

  6

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  8

  5

  9

  7

  4

  3

  1

  6

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  8

  5

  9

  7

  4

  3

  1

  6

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  8

  5

  9

  7

  4

  3

  1

  6

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  8

  5

  9

  7

  4

  3

  1

  6

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  8

  5

  9

  7

  4

  3

  1

  6

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  8

  5

  9

  7

  4

  3

  1

  6

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  1

  5

  9

  7

  4

  3

  8

  6

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  1

  5

  9

  7

  4

  3

  8

  6

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  1

  5

  9

  7

  4

  3

  8

  6

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  1

  5

  9

  7

  4

  3

  8

  6

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  1

  5

  9

  7

  4

  3

  8

  6

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  1

  5

  9

  7

  4

  3

  8

  6

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  1

  5

  9

  7

  4

  3

  8

  6

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  1

  5

  9

  7

  4

  3

  8

  6

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  1

  5

  9

  7

  4

  3

  8

  6

  2 Menor elemento ? Sim Não Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  1

  2

  9

  7

  4

  3

  8

  6

  5 Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  1

  2

  3

  7

  4

  9

  8

  6

  5 Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  1

  2

  3

  4

  7

  9

  8

  6

  5 Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  1

  2

  3

  4

  5

  9

  8

  6

  7 Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  1

  2

  3

  4

  5

  6

  8

  9

  7 Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  1

  2

  3

  4

  5

  6

  7

  9

  8 Ordenação por Seleção 

  Exemplo: 

A: vetor[1..10] de inteiro A

  1

  2

  3

  4

  5

  6

  7

  8

  9

Algoritmo

  algoritmo “Ordenação pelo Método de Seleção” var A: vetor[1..10] de inteiro i,j,menor, aux: inteiro inicio para i de 1 ate 9 faca menor <- i para j de i+1 ate 10 faca se (A[j] < A[menor]) entao menor <- j fimse fimpara aux <- A[menor] A[menor] <- A[i] A[i] <- aux fimpara fimalgoritmo

Novo documento