Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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 percurso (encontra o 2) 12 9 13 10 3 2 5
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 comparao
12
13
10
1 troca 2 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
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.
1 comparao
12
13
10
1 troca 2 comparao 9 12 13 10 3 2 5
2 troca 4 comparao 9 12 10 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.
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.
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.