Sunteți pe pagina 1din 25

Estrutura de Dados

Mtodos de Ordenao Prof. Fabio Dias fabiodias@ufc.br


1

Problema de Ordenao
Dado um vetor com n elementos, queremos orden-lo de forma crescente. Essa ordenao ser feita comparando os elementos do vetor e a partir de trocas de posies entre eles. Esses mtodos so chamados de ordenao por comparao: Bubble-sort, Select-sort, Insert-sort, Quicksort, Merge-sort

Caracterstica
Estabilidade relativo manuteno da ordem original de itens de chaves iguais. Um mtodo de ordenao considerado estvel se a ordem relativa dos elementos com chaves iguais no se altera durante a ordenao.

Mtodo da Bolha

Mtodo da Bolha
Ordenao das mais simples possvel. Percorre o vetor diversas vezes e a cada passagem fazendo flutuar ou borbulhar para o topo o maior elemento. Esse movimento lembra a forma como as bolhas em um tanque de gua procuram seu prprio nvel, disso vem o nome do mtodo.

Mtodo da Bolha
Percorra o vetor inteiro comparando elementos adjacentes (dois a dois). Troque as posies dos elementos se eles estiverem fora de ordem. Repita os dois passos acima com os primeiros n1 elementos, depois com os primeiros n-2 at que reste apenas 1 elemento.

Mtodo da Bolha - Exemplo


1 10 2 5 3 9 4 -2 5 13 6 -8 7 4 8 12

Mtodo da Bolha

Cdigo...

Mtodo da Bolha
A complexidade deste algoritmo tanto o melhor caso, como o pior caso tem ordem n, porque em ambos os casos os ciclos so sempre realizados at ao fim, mesmo quando os elementos j esto ordenados. Algoritmos estvel O fato do algoritmo est ordenado no ajuda em nada, pois o custo continua quadrtico.

Exerccio
Desenhe as trocas de elementos ao ordenar o vetor abaixo utilizando a ordenao por bolha.
1 20 2 13 3 17 4 -9 5 4 6 8 7 2 8 -1 9 -5 10 0 11 -11 12 6

Mtodo da Bolha Melhorado


Repare neste exemplo:
1 20 2 13 3 -11 4 -9 5 -5 6 -1 7 0 8 2 9 4 10 6 11 8 12 17

Mtodo da Bolha Melhorado

Cdigo...

Ordenao por Seleo

Ordenao por Seleo


Percorremos o vetor e encontramos o menor elemento e trocamos de posio com o primeiro elemento. Percorremos o restante do vetor e encontramos o segundo menor elemento e trocamos de posio com o segundo elemento. Repetimos esse processo com o terceiro menor elemento, e assim sucessivamente.

Ordenao por Seleo


Encontra o i-simo menor elemento do vetor e troc-se de posio com o elemento da i-sima posio. Uma nica trova por vez realizada.

Ordenao por Seleo


A parte em negrito est ordenada.
1 13 -8 -8 -8 -8 -8 -8 2 5 5 2 2 2 2 2 3 7 7 7 5 5 5 5 4 -8 13 13 13 7 7 7 5 15 15 15 15 15 13 13 6 2 2 5 7 13 15 15

Ordenao por Seleo

Cdigo...

Ordenao por Seleo


A complexidade no pior caso ser na ordem de n2. O fato do algoritmo est ordenado no ajuda em nada, pois o custo continua quadrtico. O algoritmo no estvel.

Exerccio
Desenhe as trocas de elementos ao ordenar o vetor abaixo utilizando a ordenao por seleo.
1 20 2 13 3 17 4 -9 5 4 6 8 7 2 8 -1 9 -5 10 0 11 -11 12 6

Ordenao por Insero

Ordenao por Insero


Algoritmo utilizado pelo jogador de cartas. As cartas so ordenadas da esquerda para a direita uma por uma. O jogador seleciona a segunda carta e verifica se ela deve ficar antes ou na posio que est. Depois a Terceira carta selecionada, deslocando at sua posio correta. O jogador realiza esse procedimento at ordenar as cartas.

Ordenao por Insero - Exemplo


1 10 2 5 3 9 4 -2 5 13 6 -8 7 4 8 12

Ordenao por Insero

Cdigo...

Ordenao por Insero


O nmero mnimo de comparaes e movimento ocorrem quando o vetor est ordenado. O nmero mximo ocorre quando o vetor est na ordem inversa. o mtodo a ser utilizado quando o vetor est quase ordenado. Algoritmo estavel.

Fim

S-ar putea să vă placă și