Você está na página 1de 2

Laboratrio Ordenao / Pesquisa

1 Fazer um programa que busca/insere/remove inteiros em um vetor (mantendo-o


sempre ordenado).
Pergunta ao usurio o que ele quer fazer
! " inserir l# um int e insere no vetor (se ele ainda n$o estiver no vetor)% e
em seguida% envia os dados para um arquivo.
! 1 buscar l# um int e busca no vetor (diz se ac&ou ou n$o% e em caso
positivo informar as posi'(es - o )ndice)
! * remover l# um int e remove do vetor% caso e+ista
! , imprimir l# o arquivo em disco e imprime os elementos do vetor
! - sair sai do programa
Obs: As operaes de inserir/remover devem manter o vetor ordenado o
tempo todo
* .imule o algoritmo /nsertion.ort / .election.ort com entrada (0% ,% 1% 2% *% -% 1%
12% ,0% *1% 32% 11"% 14% 1"").
, 5 ob6etivo deste e+erc)cio-programa 7 o de implementar e estudar o
comportamento m7dio dos algoritmos de ordena'$o. 8evem ser considerados
1) 5rdena'$o por /nser'$o
*) 5rdena'$o 9ubblesort
,) 5rdena'$o por .ele'$o .imples
-) :uic;sort
2) <ergesort
=oc# deve construir um programa (em >) para testar a efici#ncia m7dia dos
algoritmos acima. :ueremos saber quantas compara'(es% quantas trocas e quanto
tempo cada um dos 0 algoritmos acima precisa% em m7dia% para ordenar vrios
vetores de taman&o n% escol&idos aleatoriamente. Para isso seu programa deve
1 - /nicialmente preenc&er um vetor de n?meros inteiros aleatoriamente%
* - 5rdenar o mesmo vetor uma vez com cada um dos 0 algoritmos acima.
, - >ontar% para cada algoritmo% o n?mero de compara'(es e trocas realizadas%
- - >ronometrar o tempo que cada algoritmo gasta.
5 ideal 7 rodar vrias vezes para cada valor de n os algoritmos% de modo a considerar
uma estat)stica de e+ecu'$o% principalmente para valores de n pequenos. @ste
processo deve ser repetido para valores de n crescentes. Atilize seu bom senso para
determinar quantas vezes repetir cada teste e at7 que valor de n c&egar. Ama regra
razovel 7 n$o utilizar mais do que 2 minutos de tempo de e+ecu'$o no total
para todos os testes efetuados. 5bserve empiricamente como os resultados
teBricos se verificam na prtica.
@ntregue% al7m do programa% um relatBrio do seu programa que cont7m as
seguintes
informa'(es
1) 5 n?mero de testes realizados para cada valor de n.
*) 5 tempo m7dio calculado para cada algoritmo para cada valor de n.
,) 5 n?mero m7dio de compara'(es realizadas para cada algoritmo para cada
valor de n.
-) 5 n?mero m7dio de trocas realizadas para cada algoritmo para cada valor de
n.
>omente tamb7m as suas conclus(es a respeito de
1) C ordem do tempo de processamento de cada algoritmo no caso m7dio (para
valores
relativamente grandes de n).
,) C rela'$o entre o n?mero de compara'(es% n?mero de trocas e o tempo gasto
por cada
algoritmo. 5u se6a% a contagem destas opera'(es bsicas 7 uma boa
maneira de se classificar o tempo do algoritmoD
Para realizar medies de tempo, use as funes da biblioteca padro
time!:

Você também pode gostar