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
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