Sei sulla pagina 1di 2

UFU/FACOM

Disciplina: Algoritmos e Programao de Computadores


Perodo: 2010/2
Ref: Segundo Trabalho de Programao

DESCRIO DO TRABALHO:
O objetivo deste trabalho familiarizar o aluno com vetores e mtodos de ordenao.
O problema genrico de ordenao pode ser formulado como:
ENTRADA: uma sequncia de n nmeros <a1,a2,...,an>.
SADA: uma permutao (reordenamento) dos valores de entrada <a1', a2', ..., an'> de tal forma que
a1'<= a2' <= ... <= an'.

Dada por exemplo, a seqncia de 5 inteiros <21, 34, 48, 27, 41> um algoritmo de ordenao nesta
seqncia dever produzir a seguinte sada <21, 27, 34, 41, 48>.
Ordenar uma operao fundamental em computao e por causa disto inmeros bons algoritmos
foram desenvolvidos. Qual o melhor algoritmo? Esta resposta depende de vrios fatores. Depende,
por exemplo, do nmero de itens a serem ordenados, se os nmeros j esto mais ou menos
ordenados e outros fatores.

A tcnica de ordenao por Seleo uma tcnica muito conhecida de ordenao.A idia sempre
procurar o menor elemento do vetor e inseri-lo no incio do vetor. Procuramos o menor valor do
vetor e colocamos ele em vetor[1]. Procuramos o menor valor do vetor excluindo o j colocado e
colocamos ele em vetor[2]. E assim vamos indo at termos todo o vetor ordenado.
Partindo sempre a partir do ltimo elemento reordenado (a partir do i), o programa procura o menor
elemento no vetor e o substitui pelo elemento i atual.
Exemplo de Funcionamento: O programa recebe o seguinte vetor:
v[1] v[2] v[3] v[4] v[5] v[6]
5 3 7 8 2 5

O programa comea com i=1. O indexador i ser visualizado com cor preta e minimo com a cor
cinza.
v[1] v[2] v[3] v[4] v[5] v[6]
5 3 7 8 2 5

O ndice i marcado como a varivel minimo, que sempre o menor elemento do vetor. Ento,
inicia-se uma repetio para de j=2 at o comprimento do vetor, com o objetivo de descobrir qual
o menor elemento.
j=2 ... v[j]=3 < v[mnimo]=v[1]=5, portanto mnimo=j=2

v[1] v[2] v[3] v[4] v[5] v[6]
5 3 7 8 2 5

... v[j]=7 > v[mnimo]=v[2]=3, portanto nada alterado.
j=4 ... v[j]=8 > v[mnimo]=v[2]=3, portanto nada alterado.
j=5 ... v[j]=2 < v[mnimo]=v[2]=3, portanto mnimo=j=5.


v[1] v[2] v[3] v[4] v[5] v[6]
5 3 7 8 2 5

J=6 ... v[j]=5 > v[mnimo]=v[5]=2, portanto nada alterado.

Agora substitumos o v[minimo] pelo v[i], formando com isto o novo vetor:

v[1] v[2] v[3] v[4] v[5] v[6]
2 3 7 8 5 5

Este procedimento repetido para todos os elementos do vetor, com exceo do primeiro, at que
todo o vetor esteja ordenado.

Sua tarefa implementar este mtodo de ordenao em FORTRAN. Lembre-se que a seqncia de
nmeros a ser ordenada deve estar armazenada em um vetor.

PONTUAO EXTRA: Os alunos que alm de fazer a ordenao de nmeros conseguirem
tambm
fazer ordenao de nomes recebero pontos adicionais. Exemplo de ordenao com nomes.
Considerando
os seguintes nomes:
Jose da Silva
Maria de Sousa
Pedro Martins
Maria Dias
Maria Clara Santos
A execuo do programa dever retornar o seguinte:
Jose da Silva
Maria Clara Santos
Maria de Sousa
Maria Dias
Pedro Martins


**********************************************************

Potrebbero piacerti anche