Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carlos Eduardo Bellotti

[Resolvido] Metodos de ordenção

Recommended Posts

Bom dia galera !

preciso fazer um trabalho da faculdadade que compra os metodos Bublesort, Quicksort,bsort,Insertsort,SelectSort,Shellsort,Mergsort, beleza ..eu consegui implementas todos, o problema e que tenho que compara os metodos utilizando vetores de 10 , 100, 100, 1000,10000,100000... e os vetores com ordenação de um caso bom , medio , ruim ! ate ae beleza ! o problema e como eu vou comparar esses resultados, por numeros de trocas condições ou tempo ? ow todos, se for todos eu não sei como eu utilizo o tempo !! Se alguem puder dar alguma ideia de como Eu faço isso eu agreço muito !!

 

Obrigado Pessoal !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os algoritmos têm a complexidade descrita em notação O(n) na maioria das vezes. Provavelmente é isso o que você tem que usar, e não tempo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, eu vi essas notações, mas tenho que fazer graficos avaliando as ordenações ! Então tenho que usar o tempo neh ?

vou colocar um pedaço do enunciado do trabalho !!

 

"Para que seja realizada a comparação dos metods, espera-se que se utilize como metrica o tempo,quantidade de trocas, (caso haja) e quantidade de comparações.Com tudo, espera-se também que se apliquem arquivos contendo o melhor caso, caso medio e pior caso" !

 

Então tenho que usar tempo e verificar qual é mais rapido nos casos neh ?

 

 

Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

dê uma olhadinha nesse tópico aki: http://forum.imasters.com.br/index.php?showtopic=293318

 

+ com ctz para você saber o total de trocas e tal, nd melhor q o famoso "teste de mesa"!!!

c você tiver tempo faça os testes cara, vale a pena para uma compreensão melhor..

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

O tempo pode não dizer nada. É muito mais significativo dizer que a complexidade é exponencial em n[/n] do que falar que leva 10 minutos na máquina X.

O sistema tem outros processos e o algoritmo de escalonamento pode interferir nisso.

Quantidade de processadores também. Varia até na mesma máquina.

 

Por isso eu acho meio tosco alguém pedir pra medir um algoritmo com tempo de execução.

E você ainda tem que separar tempo do usuário e tempo do sistema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E tbm axei mei estranho o professor pedir o tempo !! Vou convesar com ele questionado esse problema... !! ! vou fazer por comparaçoes numeros de trocas com o teste de mesa ! e depois caso ele insista em usar o tempo como uma medida ! Eu posto aqui pedindo um help ! mas por enquanto obrigado Gente !!

 

 

Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer a comparação de tempo com a biblioteca time.h. Olhe um exemplo:

 

#include <stdio.h>
#include <time.h>

int main()
{
	time_t my = time(NULL), my2;
	int i = 0;
	while(i++ < 500)
	{
		printf("waiting...\n");
	}
	
	my2 = time(NULL);
	printf("%d\n%d", my, my2);
	getchar();
	return 0;
}

No meu computador que é uma bosta demorou um segundo para imprimir tudo, pois a diferença entre my2 e my foi de 1. Se o seu pc for mais rápido que isso talvez você precise aumentar aquele 500 ali pra demorar mais, e tentar novamente, pra você ver o efeito do uso de time(). A lógica pra comparar os tempos seria a mesma: pegue o tempo antes de rodar a ordenação, armazene-o, pegue o novo tempo depois, e compare os dois, a duração da operação é tempo2 - tempo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.