Sei sulla pagina 1di 8

MTODOS DE ORDENAO

ORDENAO Existe atualmente uma crescente necessidade de guardar informao, e mais importante que guardar informao possui-la to ordenada quanto possvel: seja por ordem alfabtica, por idade, localidade ou outro item sobre o qual necessrio trabalhar.

Mtodos de Ordenao: Mtodo de ordenao por extrao ou seleo (Seleo Direta) Mtodo de ordenao por insero (com Pivot) Mtodo de ordenao da bolha (Bubble Sort) Mtodo do torneio (Quick Sort)

MTODO POR EXTRACO (SELECO DIRECTA) Este mtodo consiste em percorrer o vector, da primeira ltima posio, procura do menor elemento e coloc-lo na primeira posio; em seguida comea na segunda posio e percorre o resto do vector procura do prximo menor elemento e coloca-o na segunda posio, e assim sucessivamente at ltima posio.

EXEMPLO:

1 elem. 2 elem. 3 elem. 4 elem. 5 elem. 6 elem. 7 elem.

1 percurso (encontra o 2) 12 9 13 10 3 2 5

1 troca 2 percurso (encontra o 3) 2 12 9 13 10 3 5

2 troca 3 percurso (encontra o 5) 2 3 12 9 13 10 5

3 troca 4 percurso (encontra o 9) 2 3 5 12 9 13 10

4 troca 4 percurso (encontra o 10) 2 3 5 9 12 13 10

5 troca 5 percurso (o vector encontra-se ordenado)

10

12

13

* Os percursos so as comparaes efectuadas com todos os elementos posteriores, de forma a encontrar o mais pequeno ainda existente na parte no ordenada do vector.

Este mtodo tem a vantagem de ser muito simples e compacto. No entanto no deve ser aplicado a vectores de grandes dimenses, porque o vector vai ser percorrido tantas vezes quantas as posies que tiver.

MTODO DE ORDENAO POR INSERO (COM PIVOT) Este mtodo percorre todos os elementos do vector e, sempre que encontrar um elemento menor do que algum dos anteriores, colocao na posio correta.

EXEMPLO:

1 elem. 2 elem. 3 elem. 4 elem. 5 elem. 6 elem. 7 elem.

1 comparao

12

13

10

1 troca 2 comparao 9 12 13 10 3 2 5

Troca no efetuada - 3 comparao 9 12 13 10 3 2 5

Troca no efetuada - 4 comparao 9 12 13 10 3 2 5

2 troca 5 comparao 9 10 12 13 3 2 5

3 troca 6 comparao 3 9 10 12 13 2 5

4 troca 7 comparao 2 3 9 10 12 13 5

5 troca ( vector ordenado) 2 3 5 9 10 12 13

* As comparaes so efetuadas com todos os elementos anteriores.

Tambm este mtodo perde eficincia para vectores de grandes dimenses.

MTODO DE ORDENAO DA BOLHA (BUBBLE SORT) Este mtodo faz a comparao, da esquerda para a direita do vector, de cada elemento com o seu elemento anterior at que no seja necessrio trocar mais vezes, ficando assim ordenado. Tambm se pode percorrer o vector da direita para a esquerda.

EXEMPLO: 1 elem. 2 elem. 3 elem. 4 elem. 5 elem. 6 elem. 7 elem.

1 comparao

12

13

10

1 troca 2 comparao 9 12 13 10 3 2 5

Troca no efectuada - 3 comparao 9 12 13 10 3 2 5

2 troca 4 comparao 9 12 10 13 3 2 5

3 troca 5 comparao 9 (....) 10 12 13 3 2 5

I primeiro elemento J elemento antecessor Em todas as trocas, aps a comparao do elemento i com o elemento j, efectua-se a comparao do elemento j com o elemento j-1.

A maior fraqueza deste mtodo que exige um grande nmero de trocas. Para melhorar a eficincia pode ser utilizada uma varivel lgica para indicar que as trocas terminaram e que por isso o algoritmo no precisa de continuar.

MTODO DO TORNEIO (QUICK SORT)

Este mtodo agrupa os elementos maiores e os elementos menores. Este agrupamento consegue-se custa de trocas. aconselhvel trocar os elementos de valor baixo em posies altas (mais prximas do fim do vector) com elementos de valor alto que se encontram em posies baixas (mais prximas do incio do vector). Deste modo, o vector inicial ser partido em dois sub vectores, onde o primeiro tem todos os elementos de valor inferior a qualquer elemento do segundo sub vector. Para conseguir a ordenao aplica-se este mtodo recursivamente a cada um dos sub vectores.

EXEMPLO: 1 elem. 2 elem. 3 elem. 4 elem. 5 elem. 6 elem. 7 elem.

1 comparao 12 9 13 10 3 2 5

1 troca 2 comparao

13

10

12

3 comparao 5 9 13 10 3 2 12

3 troca 4 comparao 5 9 2 10 3 13 12

4 troca 5 comparao 5 (....) * VC = Valor de comparao (nmero de elementos / 2) * A troca efetuada entre o primeiro e o ltimo elemento, desde que o valor do primeiro elemento seja superior ao valor do elemento posicionado no VC. 9 2 3 10 13 12

Foi inventado por C. A. R. Hoare e geralmente considerado o melhor algoritmo de ordenao de vectores.

Potrebbero piacerti anche