Estrutura de Dados - ARA 7125
Segundo Exercı́cio-Programa - Entrega: 06 de Dezembro de 2014
Tempo de alguns algoritmos de ordenação
Este Exercı́cio-Programa (EP) consiste na implementação dos algoritmos de ordenação Inserç~
ao,
Seleç~
ao, Mergesort, Heapsort e Quicksort. Calcule o espaço gasto por cada algoritmo. Use
a função sizeof para calcular o espaço gasto (em bytes) pelas variáveis.
Para cada algoritmo, calcule também o tempo médio gasto para ordenar vetores com tamanhos 100, 200, 400, 800, 1600, 32000, 64000, 128000, 256000, 512000, 1024000, 2048000,
4096000. O tempo médio deve ser calculado executando cada algoritmo para 50 entradas de um
determinado tamanho. O tempo médio deve ter 7 casas decimais (exatamente).
Para calcular o tempo de um algoritmo, você pode usar, por exemplo:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
clock t start, end;
double cpu time used;
start = clock();
/* Chame um algoritmo aqui. */
end = clock();
cpu time used = ((double) (end - start)) / CLOCKS PER SEC;
return 0;
}
A variável cpu time used armazena o tempo em segundos do algoritmo analisado.
Gerando as entradas para este exercı́cio
Uma entrada pode ser gerada pelo programa em C cria-vetor.c (disponı́vel na página da
disciplina). Compile este programa, dê ao arquivo compilado o nome a.out, e execute este
programa com o parâmetro 100 para gerar uma sequência aleatória com 100 números de inteiros
entre 0 e 9999.
O script gera.sh (somente para o sistema operacional Linux e também disponı́vel na página
da disciplina), gera automaticamente todas as entradas do programa.
Faça um relatório comentando os resultados obtidos. Este relatório deve conter pelo menos
uma tabela mostrando o consumo médio de tempo e o consumo de espaço para cada algoritmo.
Observações importantes:
1. Podem formar grupos com até 3 pessoas.
2. O seu programa deve ser feito em linguagem C. O compilador deve ser o gcc.
3. Você deve implementar os algoritmos vistos em sala de aula.
4. Exercı́cios-Programas atrasados não serão aceitos.
5. Programas com erros de sintaxe (ou seja, existem erros durante a compilação do programa),
receberão nota ZERO. Programas com warning na compilação terão diminuição na nota.
6. Utilize apenas os recursos que foram vistos em aula.
1
7. É importante que seu programa esteja escrito (digitado) de maneira a destacar a estrutura
do programa (boa formatação).
8. O seu programa deve começar com um cabeçalho (linhas em comentários) contendo pelo
menos o seu nome, sua matrı́cula e seu curso.
9. Coloque comentários em pontos convenientes do programa.
10. A entrega do Exercı́cio-Programa deverá ser feita no MOODLE.
11. O Exercı́cio-Programa é individual por grupo. Não copie o programa de outro grupo, não
empreste o seu programa para outro grupo, e tome cuidado para que não copiem seu programa
sem a sua permissão. Todos os programas envolvidos em cópia terão nota ZERO.
2
Download

Gerando as entradas para este exerc´ıcio - IME-USP