Escreva um programa que seja capaz de ler inteiros do teclado, e
que os armazene em um vetor (use malloc). Seu programa deve
então ordenar os numeros lidos, segundo 2 metodos distintos de
ordenação. Faça uma copia do vetor antes da
ordenação, de forma que voce possa ordenar 2 vetores
distintos, com os mesmos elementos, e na mesma ordem original, segundo
os dois metodos de ordenação.
Utilize o merge-sort, e algum metodo simples de
ordenação (por seleção, bubble, ou algo
equivalente).
Seu programa deve calcular o tempo de ordenação
(segundo cada algoritmo), e imprimir este tempo na tela, em uma linha
que se inicie por um caracter '#'. Em seguida, seu programa deve
imprimir o vetor ordenado pelo metodo merge-sort, com um numero por
linha.
Sugetões:
- Utilize a função gettimeofday para
obter o tempo de execução de seu programa.
- Detecte o fim da entrada com feof(stdin)
Exemplo
Entrada:
10
15
3
7
-1
8
0
1
17
Saída:
# tempo de ordenacao: merge-sort - 10 microsegundos
#
bubble-sort - 3 microsegundos
-1
0
1
3
7
8
10
15
17