Você está na página 1de 2

BCC202 Estruturas de Dados I (2014-01)

Departamento de Computao - Universidade Federal de Ouro Preto - MG


Professor: Reinaldo Fortes (www.decom.ufop.br/reinaldo)
Monitores: Luiz Walber e Mateus Freire
Aula Prtica 09 Ordenao: HeapSort

- Data de entrega: 13/06/2014 at 23:55. O que vale o horrio do Moodle, e no do seu, ou do meu, relgio!!!
- Decrscimo por atraso de at: 12h = 30%, 24h = 40%; 36h = 60%; 48h = 70%; Acima de 48h = 100%.
- Procedimento para a entrega:.
1.
2.
3.
4.
5.
6.
7.

Crie uma pasta para a questo: PrimeiroNome-UltimoNome-Questao (exemplo: reinaldo-fortes-1).


Crie os arquivos de codigo fonte necessarios para a soluo da questo (arquivos .c e .h)
Compile na linha de comando usando gcc *.c -o prog.exe -lm.
Execute usando redirecionamento de entrada: ./prog.exe < entrada.txt.
Apague os arquivos gerados na compilao e o arquivo de entrada (mantenha apenas os arquivos .c e .h).
Compacte a pasta criada no item 1.
Faa a entrega do arquivo compactado no moodle, na tarefa destinada prtica e questo correspondentes.

A cada etapa, verifique se o resultado est conforme o esperado.


No utilize caracteres acentuados ou especiais para nomes de pastas e arquivos.
- Bom trabalho!

Questo 01
Implemente o algoritmo de ordenao HeapSort. Seu algoritmo receber um vetor de inteiros e o tamanho deste
vetor e retornar o nmero de comparaes de chaves e movimentos de registros realizados durante sua execuo,
alm do tempo de execuo, da mesma forma como foi feito na Prtica 08.

Exemplo de entrada e Sada


A entrada inicia com o nmero de vetores a serem ordenados. Cada vetor iniciado pelo nmero de elementos
contidos no vetor e seguido dos elementos a serem ordenados.
A sada apresenta a quantidade de comparaes e movimentos realizados, seguidos pelo tempo de execuo de
cada algoritmo, seguindo o padro definido no exemplo a seguir. Recomenda-se coletar o tempo de todos os algoritmos para comparao.
A sada deve incluir os resultados dos algoritmos de ordenao implementados nas prticas anteriores.

Entrada
2
10 1 2 3 4 5 6 7 8 9 10
10 5 4 3 2 1 6 7 8 9 10

Saida
Vetor 1:
- Comparacoes | Movimentacoes | Tempo:
- - Bubble....: C11 | M11
- - Selection.: C12 | M12
- - Insertion.: C13 | M13
- - Merge.....: C14 | M14
- - Quick.....: C15 | M15
- - Shell 01..: C16 | M16 | T16
- - Shell 02..: C17 | M17 | T17
- - Shell 03..: C18 | M18 | T18
- - Heap......: C19 | M19 | T19
Vetor 2:
- Comparacoes | Movimentacoes | Tempo:
- - Bubble....: C21 | M21
- - Selection.: C22 | M22
- - Insertion.: C23 | M23
- - Merge.....: C24 | M24
- - Quick.....: C25 | M25
- - Shell 01..: C26 | M26 | T26
- - Shell 02..: C27 | M27 | T27
- - Shell 03..: C28 | M28 | T28
- - Heap......: C29 | M29 | T29

Os valores Cxy, Mxy e Txy correspondem aos valores retornados pelas funes de ordenao para o nmero de
comparaes de chaves, o nmero de movimentaes de registros e o tempo de ordenao, respectivamente. Tais
valores no sero apresentados aqui, pois podem variar de uma implementao para outra.
DICA: Para que se consiga fazer comparaes de tempo, necessrio fazer testes com vetores grandes. Crie um
programa que gere a entrada recebendo como argumento o nmero de casos de teste e a dimenso de cada vetor.
interessante criar vetores ordenados de forma crescente, decrescente e randmicos para testar melhor, pior e caso
mdio.

Você também pode gostar