Sei sulla pagina 1di 14

Algoritmos Estruturados

AULA 08: Mtodos de Ordenao

Tecnologia em Anlise e Desenvolvimento de


Sistemas
2 Semestre
Prof Rafael Divino Ferreira Feitosa
E-mail: rafael.feitosa@ifgoiano.edu.br

Roteiro

Mtodos de ordenao

Bubble sort

Insertion sort

Selection sort

Shell sort

Mtodos de Ordenao

Ordenao o processo de rearranjo de um certo


conjunto de objetos (elementos) de acordo com um
critrio (ordem) especfico;
O objetivo da ordenao facilitar a localizao dos
membros de um conjunto de objetos;
uma atividade fundamental e universalmente utilizada
para a elaborao de algoritmos mais complexos;
Exemplos de casos em que os objetos esto ordenados
podem ser encontrados em:

Listas telefnicas, ndices, dicionrios, almoxarifados etc. e em


quase todos os casos em que estejam armazenados dados
sujeitos busca e alterao.
3

Mtodos de Ordenao

Os mtodos de ordenao so classificados em


2 grandes grupos:

Ordenao interna:

So os mtodos que no necessitam de uma memria


secundria para o processo. A ordenao feita na
memria principal do computador.

Ordenao externa:

Quando o arquivo a ser ordenado no cabe na


memria principal e, por isso, deve ser armazenado
em disco.

Mtodos de Ordenao

Durante a escolha de um algoritmo de ordenao,


deve-se observar um aspecto importante:

O tempo gasto durante a sua execuo.

Para os algoritmos de ordenao interna as


medidas relevantes de complexidade so:

Nmero de comparaes;

Nmeros de movimentaes (trocas).

Mtodos de Ordenao

Os mtodos de ordenao interna mais


conhecidos so classificados em 2 subgrupos:

Mtodos simples:

Bubble sort;
Insertion sort;
Selection sort;
Shell sort.

Mtodos eficientes:

Merge sort;
Heap sort;
Quick sort.
6

Bubble sort

o mtodo mais simples em termos de


implementao:

A ideia do algoritmo percorrer o vetor n 1


vezes:

Menos eficiente.

A cada passagem colocando o maior elemento no


final da sequncia.

Seu uso no recomendado para vetores com


muitos elementos.
7

Bubble sort

1.

1C, 0T

2.

2C, 1T

3.

3C, 1T

4.

4C, 2T

5.

4C, 2T

2 passagem

6.

7C, 3T

7.

7C, 3T

3 passagem

8.

9C, 4T

9.

10C, 4T

4 passagem

1 passagem

vetor inicial

10.

10C, 5T

11.

10C, 5T

Insertion sort

Esse mtodo eficiente quando aplicado um


vetor com poucos elementos;
Em termos gerais, ele percorre um vetor de
elementos da esquerda para a direita e medida
que avana vai deixando os elementos mais
esquerda ordenados;
O algoritmo funciona da mesma maneira com que
muitas pessoas ordenam cartas em um jogo de
baralho como o pquer.
9

Insertion sort
49 67 33 96 21 33 58 74

8.

33 21 49 67 96 33 58 74

16.

21 33 33 49 58 67 96 74

1.

49 67 33 96 21 33 58 74

9.

21 33 49 67 96 33 58 74

17.

21 33 33 49 58 67 74 96

2.

49 67 33 96 21 33 58 74

10.

21 33 49 67 33 96 58 74

21 33 33 49 58 67 74 96

3.

49 33 67 96 21 33 58 74

11.

21 33 49 33 67 96 58 74

17 comparaes
12 trocas

4.

33 49 67 96 21 33 58 74

12.

21 33 33 49 67 96 58 74

5.

33 49 67 96 21 33 58 74

13.

21 33 33 49 67 96 58 74

6.

33 49 67 21 96 33 58 74

14.

21 33 33 49 67 58 96 74

7.

33 49 21 67 21 33 58 74

15.

21 33 33 49 58 67 96 74

10

Selection sort

Esse mtodo tem como princpio de


funcionamento selecionar o menor item do vetor
e a seguir troc-lo pela primeira posio do
vetor:

Ocorre para os n 1 elementos restantes, depois com


os n 2 elementos, at que reste apenas um item.

Diferena deste mtodo em relao ao bubble


sort e ao insertion sort:

Realiza apenas uma troca por iterao.

11

3.

9.

10.

10.

5.

12.

6.

13.

4.

menor

8.

menor

menor

2.

15.

menor

menor

10 comparaes
8 trocas

menor

menor

menor

menor

1.

14.

7.

menor

menor

menor

menor

menor

menor

Selection sort

12

Shell sort

O shell sort uma extenso do mtodo insertion


sort:

O algoritmo de insero troca itens adjacentes


quando est procurando o ponto de insero na
sequncia destino;
O shell sort permite a troca de elementos distantes
um do outro.

De maneira geral, ele passa vrias vezes no


vetor dividindo-o em vetores menores e aplicando
o insertion sort;
De todos os mtodos simples o mais eficiente.
13

Shell sort
k = 4/2 = 2

12 22 2

9 40 15 37 38

5.

12 15 2

k = 2/2 = 1

9 40 22 37 38

12.

9 12 15 37 22 40 38

k = 8/2 = 4
1.

12 22 2

9 40 15 37 38

6.

2 15 12 9 40 22 37 38

13.

9 12 15 22 37 40 38

2.

12 22 2

9 40 15 37 38

7.

9 12 15 40 22 37 38

14.

9 12 15 22 37 40 38

3.

12 15 2

9 40 22 37 38

8.

9 12 15 40 22 37 38

15.

9 12 15 22 37 40 38

4.

12 15 2

9 40 22 37 38

9.

9 12 15 40 22 37 38

16.

9 12 15 22 37 38 40

10.

9 12 15 37 22 40 38

9 12 15 22 37 38 40

11.

9 12 15 37 22 40 38

20 comparaes
6 trocas

14

Potrebbero piacerti anche