Você está na página 1de 3

Ordenao

Ordenao de Vetor
Instituto de Cincias Matemticas e de Computao SCE283 Lgica de Programao e Aplicaes Profa. Sarita Mazzini Bruschi 2o semestre/2008 Slides de autoria de Rosely Sanches e Simone Senger de Souza

ORDENAO uma das tarefas bsicas em processamento de dados A ordenao de um vetor significa classificar os seus elementos Colocar os elementos do vetor em ordem de acordo com algum critrio

Ordenao de Vetores
Supor que os elementos de um vetor sejam inteiros Critrio de ordenao: ordem crescente ordem decrescente

Algoritmos de Ordenao
Existem vrios algoritmos de ordenao Diferenciam pela velocidade da ordenao (e complexidade de implementao) Mtodos de ordenao: (simples) Mtodo da Seleo Mtodo da Bolha

Mtodo da Seleo Ordenao pelo Mtodo da Seleo


Funcionamento: a cada passagem pelo vetor, selecionar o menor elemento e colocar este elemento o mais a esquerda possvel no vetor. Para isto deve-se trocar as posies dos elementos do vetor
Na primeira passagem troca-se o menor elemento com o que est na primeira posio Na segunda passagem troca-se o segundo menor elemento com o que est na segunda posio Assim por diante
6

Mtodo da Seleo Mtodo da Seleo


Desse modo, na passagem i s se deve procurar o menor elemento a partir do i-simo at o Nsimo elemento do vetor (os elementos anteriores j estaro ordenados). Note-se que sero necessrias (N-1) passagens, pois, na ltima passagem, o N-simo elemento j estar na sua posio correta

(ordem crescente)
VET = [ 46 15 91 59 62 76 10 93 ]

VET = [ 46

15

91

59

62

76

10

93 ]

VET = [ 10 VET = [ 10 VET = [ 10


7

15 15 15

91 91 91

59 59 59

62 62 62

76 76 76

46 45 45

93 ] 93 ] 93 ]
8

Mtodo da Seleo
(ordem crescente)
VET = [ 10 15 91 59 62 76 45 93 ]

Mtodo da Seleo
(ordem crescente)
VET = [ 10 VET = [ 10 15 15 15 15 15 45 45 45 45 45 59 59 59 59 59 62 62 62 62 62 76 76 76 76 76 91 91 91 91 91 93 ] 93 ] 93 ] 93 ] 93 ]

VET = [ 10

15

45

59

62

76

91

93 ]

VET = [ 10 VET = [ 10

VET = [ 10 VET = [ 10

15 15

45 45

59 59

62 62

76 76

91 91

93 ] VET = [ 10 93 ] VET = [ 10
9

Vetor Final 15 45 59 62 76 91 93 ]
Ok!
10

Algoritmo do Mtodo da Seleo


Inicio Algoritmo SelectionSorte Inicio variveis inteiro i, j, min, aux, vetor[100], inteiro tam para i de 1 at tam-1 faa min = i Percorre todo o vetor para j de i+1 at tam faa at o elemento n-1 se (vetor[j] < vetor[min]) min = j fim-se Percorre do elemento fim-para i+1 at o ltimo. aux=vetor[i] Armazena a posio vetor[i]=vetor[min] (ndice) do menor vetor[min]=aux elemento fim-para Fim. Troca os elementos, Fim Algoritmo colocando-os na ordem A varivel I controla o piv crescente A varivel J controla os elementos a frente do piv 11

Exerccio de Fixao
Utilizando o algoritmo anterior (mtodo da seleo), faa a ordenao do seguinte vetor: Vetor = { 4, 8, 2, 3, 7}

12

Mtodo da Bolha Mtodo da Bolha


mais popular que o mtodo da seleo, embora seu desempenho seja inferior Funcionamento: A cada passagem pelo vetor, o elemento da i-sima posio selecionado e transferido para a sua posio adequada.

14

VETOR DESORDENADO [ 15 46 91 59 62 76 10 93 ] [ 15 [ 15 [ 15 [ 15 [ 15 [ 15 [ 15 [ 15 [ 15 [ 15 [ 10 46 46 46 46 46 46 46 46 10 10 15 91 59 59 59 59 59 59 10 46 46 46 59 91 62 62 62 62 10 59 59 59 59 62 62 91 76 76 10 62 62 62 62 62 76 76 76 91 10 76 76 76 76 76 76 10 10 10 10 91 91 91 91 91 91 91 93 93 93 93 93 93 93 93 93 93 93 ] ] ] ] ] ] ] ] ] ] ]

Algoritmo do Mtodo da Bolha


Inicio Algoritmo BubbleSort Inicio inteiro i, j, aux, vetor[100], inteiro tam para i de 1 at tam faa para j de tam at i+1 passo 1 faa se (vetor[j-1] > vetor[j] aux=vetor[j-1] vetor[j-1]=vetor[j] vetor[j]=aux fim-se fim-para fim-para Fim Fim Algoritmo

No trocou mais nada

VETOR ORDENADO [ 10 15 46 59 62 76 91 93 ]

15

16

Exerccio de Fixao
Utilizando o algoritmo anterior (mtodo da bolha), faa a ordenao do seguinte vetor: Vetor = { 4, 8, 2, 3, 7}

17

Você também pode gostar