From e1eba01820919c0f982529872b154d19d451cb65 Mon Sep 17 00:00:00 2001
From: Fernando Erd <fce15@inf.ufpr.br>
Date: Fri, 11 Dec 2015 23:55:46 -0200
Subject: [PATCH] =?UTF-8?q?Estrutura=C3=A7=C3=A3o?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Arquivos/Loteria      | Bin 13776 -> 13813 bytes
 Arquivos/Main.c       |  59 ----------------------
 Arquivos/MedirTempo.c |  63 +++++++++++++++++++++++
 Arquivos/QuickSort.c  | 113 ------------------------------------------
 Arquivos/makefile     |   3 +-
 5 files changed, 65 insertions(+), 173 deletions(-)
 create mode 100644 Arquivos/MedirTempo.c
 delete mode 100644 Arquivos/QuickSort.c

diff --git a/Arquivos/Loteria b/Arquivos/Loteria
index f5cdde9c48e3384aa9ecd0c9209422479f765abc..6f3be512a0e027261422176357cf6e6f01e7ac94 100755
GIT binary patch
delta 2262
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

delta 2150
zcmeyGeIa|o1<onb3}7&2;?4bnJH)|kh8^M#V8)KgD;aN#$jxwJ{qWQCvEzhFAJ17b
zjm}GazHgqvbc<PFgQx?8$MJ&>VCwjP!O2Z*HyDphj%L?myfL|peWufGQ3r+{AfsNa
z|NH;{ao0Z}_G^i5*FT-d_CJJ6PWt=*f3xc!#^%~ToOO@(b1^V5yomez|Ns7{qLWiO
z^q3xsZl20f$~HMhNJ#m@H;_R$zy`^9bi1DL=sf-+@5lfDF!qz5lP3zvFire6`J+ex
z&j+|As^2CD3dt&qVbj0mJ3{{ki2mze!TKe{U_QwH3ev9|^A%yg8qCgL-yr&Tft<b%
z<TjA2nEp=Y7m;BShM434H);77ut_t%U@^%It4Z_!Oa__c{{`fx`U1E~k3awafAVms
zN9R+I<~ITR7l=79yx9Nw|9_8O*Bu_6$MzqBtCalm|9`jZj^-bXC49|4nD|@1FfcH@
zlxJjM@aT0t0CFwMSFpYdAhzGv|Nr-cyz%1V=l}mZkH1*;`TzeHPe1?vKl9+L$wmCy
z^(R19=|QXlYbpQs|Nrag{U1Q$Vo2goLE_H)CBz*VUi|w6u>v)iZvOiJ|Fz<N50HvG
zSXD^;{{Mf1M{no>k6zac9-Y@bI$e&x(1y4jZ26ln|Np->fXE(yar!sJ8jw#a{~*}v
ze-Z5afB*mATq5Al$WtK>i(&PTlg|r=APF4*Fj-$nOlSsN#nKO;@aC7F94{&=yMsf4
zA=IN+7eoj9Xg)Q(?Q!rgvq$qAju)~YCQlTtpR6IiVY7gk1Y<p;G_&;{1_lN(1_p*7
zZ~y=2U}Rue@$UbBP%@tS{{MdiMh1r0@BjY~U}Rv3`|$sN1tSB){}2EF&tPO=$o=^L
z{|-h5hR+}W|G&Y=z)<|@|NkG13=E84|Noa@VqoC>_W!>H69YrmxBvemm>3wmzyJSV
z!NkD8`s4rq8B7ce`+xjb`@e&UfuZ^5|Nl3b7#Q4t{r~@iiGg9+@BjZLm>C#+{`~)M
z!OXxgadNGMHRFlNJ0<iPUrc@}q0SgPSx{1*aq?tCNp;41lOrYN8RI8cO3E{?ojg-g
zo=Nz_<Xw_-jK!00O3E`nocvQ#p7G>lNhx_It}m0Vq~w@Rf0=wsN{Vd_BLhR~S1|Jo
z$Xj10OG!(yy<ucvSo{sdRO11;>HGix@r(=%432yPZA{L*Y|K%NJnS3{G7Jn1I!p`<
zZ9gVgNlCH!FflOj{G2>XN=iJ3iGjiJ=l}npbPU(U^nSCq^iihC8<-R(3&=SzZrL0t
zcb|<hXtJTIKIaxuNU64Ea;B=e-~lM_fG8-PGcbIgyirx36H)TLR5j<Ukbvl@*sQ5`
zoQZb<2SlkX0|SG><i8r)oF5D!A`dnjYL+uHZkc>gOO%<P;lSjBTH=y0vmi<!Br}5`
zL&fHgTJlVj9h6um-_aJCETGFG%E%zdFhLq(8AKri!@J2JwZ$hF=t@i$&|nc|U=U)E
zkV}9`f@$u_3w6aMML@yEAjBYmCaXUAqOQ24Eh9)LF9WEk25Djf5ey6rzLOdC#3hrU
zvU~X<cJG497ELzP6PN5`WMEKWkYLDAK(%)!Snq16-o@+?y~R+yTPIJ{6PMfrmgQrB
z1v*rc;n3uRdg6?y!6w`XtKnrR7l4>>1ghveNY+r03F7iNVTkN9sH`GXT$>9b-Us!P
z=Hx(qaYhd?89ljCUtBVeiGe`?i~Fl5Z`2oOZDV3!P?&s?QJ8V+<cIp=hKr!)dWt~I
z1t%;928NAH3=Dz{{0y)J!vb~30gz3Gm!P^pbs$J06+|#FFg${aGoyv<r^$r|;*#H?
zvMf-$T%o$SCNDG)mlR}%`1~L*#3hMPS(V8b4a7~gm_fdhWT-%k6*H)=|AG)*;OxY}
zz+lY`^QZr0Lql=N7^pg5XuO3%O;4SiXecgO50zcb2{EMsD%&-AqM<nJG`LwCCLc5u
Ym)r(bZ4I>(7K7&|e>D8Q_^S~!0HD09CjbBd

diff --git a/Arquivos/Main.c b/Arquivos/Main.c
index a927373..dc9e274 100644
--- a/Arquivos/Main.c
+++ b/Arquivos/Main.c
@@ -1,65 +1,6 @@
 #include "Estruturas.h"
 #include "Funções.h"
 
-//Calcula o Tempo da Execução do SelectSort
-void TempoSelectSort (int *Vetor) {
- 	struct timeval inicio, final;
-	int tmili, i;
-	
-	gettimeofday(&inicio, NULL);
-	for (i = 0; i < 10000; i ++) {
-       		GeraVetor(Vetor);	
-		SelectSort (Vetor);
-	}
-    	gettimeofday(&final, NULL);
-    	tmili = (int) (1000 * (final.tv_sec - inicio.tv_sec) + (final.tv_usec - inicio.tv_usec) / 1000);
-	printf ("O SelectSort Demorou %d Centesimos\n", tmili);
-}
-
-//Calcula o Tempo da Execução do BubbleSort
-void TempoBubbleSort (int *Vetor) {
- 	struct timeval inicio, final;
-	int tmili, i;
-
-	gettimeofday(&inicio, NULL);
-	for (i = 0; i < 10000; i ++) {
-       		GeraVetor(Vetor);
-		BubbleSort (Vetor);
-	}
-    	gettimeofday(&final, NULL);
-    	tmili = (int) (1000 * (final.tv_sec - inicio.tv_sec) + (final.tv_usec - inicio.tv_usec) / 1000);
-	printf ("O BubbleSort Demorou %d Centesimos\n", tmili);
-}
-
-//Calcula o Tempo da Execução do QuickSort Recursivo
-void TempoQuickSortRecursivo (int *Vetor) {
- 	struct timeval inicio, final;
-	int tmili, i;
-
-	gettimeofday(&inicio, NULL);
-	for (i = 0; i < 10000; i ++) {
-       		GeraVetor(Vetor);
-		QuickSortRecursivo (Vetor, 0, TAM);
-	}
-    	gettimeofday(&final, NULL);
-    	tmili = (int) (1000 * (final.tv_sec - inicio.tv_sec) + (final.tv_usec - inicio.tv_usec) / 1000);
-	printf ("O QuickSort Recursivo Demorou %d Centesimos\n", tmili);
-}
-
-//Calcula o Tempo da Execução do QuickSort Iterativo
-void TempoQuickSortIterativo (int *Vetor) {
- 	struct timeval inicio, final;
-	int tmili, i;
-
-	gettimeofday(&inicio, NULL);
-	for (i = 0; i < 10000; i ++) {
-       		GeraVetor(Vetor);
-		QuickSortIterativo (Vetor, 0, TAM);
-	}
-    	gettimeofday(&final, NULL);
-    	tmili = (int) (1000 * (final.tv_sec - inicio.tv_sec) + (final.tv_usec - inicio.tv_usec) / 1000);
-	printf ("O QuickSort Iterativo Demorou %d Centesimos\n", tmili);
-}
 
 int main () {
         int Vetor[TAM], Escolhidos[4];
diff --git a/Arquivos/MedirTempo.c b/Arquivos/MedirTempo.c
new file mode 100644
index 0000000..02609f9
--- /dev/null
+++ b/Arquivos/MedirTempo.c
@@ -0,0 +1,63 @@
+#include "Funções.h"
+#include "Estruturas.h"
+
+//Calcula o Tempo da Execução do SelectSort
+void TempoSelectSort (int *Vetor) {
+ 	struct timeval inicio, final;
+	int tmili, i;
+	
+	gettimeofday(&inicio, NULL);
+	for (i = 0; i < 10000; i ++) {
+       		GeraVetor(Vetor);	
+		SelectSort (Vetor);
+	}
+    	gettimeofday(&final, NULL);
+    	tmili = (int) (1000 * (final.tv_sec - inicio.tv_sec) + (final.tv_usec - inicio.tv_usec) / 1000);
+	printf ("O SelectSort Demorou %d Centesimos\n", tmili);
+}
+
+//Calcula o Tempo da Execução do BubbleSort
+void TempoBubbleSort (int *Vetor) {
+ 	struct timeval inicio, final;
+	int tmili, i;
+
+	gettimeofday(&inicio, NULL);
+	for (i = 0; i < 10000; i ++) {
+       		GeraVetor(Vetor);
+		BubbleSort (Vetor);
+	}
+    	gettimeofday(&final, NULL);
+    	tmili = (int) (1000 * (final.tv_sec - inicio.tv_sec) + (final.tv_usec - inicio.tv_usec) / 1000);
+	printf ("O BubbleSort Demorou %d Centesimos\n", tmili);
+}
+
+//Calcula o Tempo da Execução do QuickSort Recursivo
+void TempoQuickSortRecursivo (int *Vetor) {
+ 	struct timeval inicio, final;
+	int tmili, i;
+
+	gettimeofday(&inicio, NULL);
+	for (i = 0; i < 10000; i ++) {
+       		GeraVetor(Vetor);
+		QuickSortRecursivo (Vetor, 0, TAM);
+	}
+    	gettimeofday(&final, NULL);
+    	tmili = (int) (1000 * (final.tv_sec - inicio.tv_sec) + (final.tv_usec - inicio.tv_usec) / 1000);
+	printf ("O QuickSort Recursivo Demorou %d Centesimos\n", tmili);
+}
+
+//Calcula o Tempo da Execução do QuickSort Iterativo
+void TempoQuickSortIterativo (int *Vetor) {
+ 	struct timeval inicio, final;
+	int tmili, i;
+
+	gettimeofday(&inicio, NULL);
+	for (i = 0; i < 10000; i ++) {
+       		GeraVetor(Vetor);
+		QuickSortIterativo (Vetor, 0, TAM);
+	}
+    	gettimeofday(&final, NULL);
+    	tmili = (int) (1000 * (final.tv_sec - inicio.tv_sec) + (final.tv_usec - inicio.tv_usec) / 1000);
+	printf ("O QuickSort Iterativo Demorou %d Centesimos\n", tmili);
+}
+
diff --git a/Arquivos/QuickSort.c b/Arquivos/QuickSort.c
deleted file mode 100644
index ea70037..0000000
--- a/Arquivos/QuickSort.c
+++ /dev/null
@@ -1,113 +0,0 @@
-#include <stdio.h>
- 
-void Troca (int *Vetor, int i, int j) {
-	int aux;
-
-	aux = Vetor[i];
-	Vetor [i] = Vetor[j];
-	Vetor [j] = aux;
-}
-
-void printVetor( int Vetor[], int n ) {
-    int i;
-    for ( i = 0; i < n; ++i )
-        printf( "%d ", Vetor[i] );
-	printf ("\n");
-}
-
-int Mediana(int *Vetor, int esq, int dir) {
-	int aux;
-	aux = (dir+esq)/2; // elem. do meio do vetor
-	
-	//mediana dos 3 numeros
-
-	if ( (Vetor[esq] >= Vetor[aux]) && (Vetor[esq] <= Vetor[dir]) )
-	   return esq;
-	
-	else if ( (Vetor[esq] >= Vetor[dir]) && (Vetor[esq] <= Vetor[aux]) )
-		return esq;
-	
-	else if ( (Vetor[dir] >= Vetor[aux]) && (Vetor[dir] <= Vetor[esq]) )
-		return dir;
-
-	else if ( (Vetor[dir] >= Vetor[esq]) && (Vetor[dir] <= Vetor[aux]) )
-		return dir;
-	
-	else if ( (Vetor[aux] >= Vetor[esq]) && (Vetor[aux] <= Vetor[dir]) )
-		return aux;
-	
-	else if ( (Vetor[aux] >= Vetor[dir]) && (Vetor[aux] <= Vetor[esq]) )
-		return aux;
-
-}
-
-int Particao (int *Vetor, int esq, int dir) {
-	int i,j,pivo,aux;
-	aux = Mediana(Vetor,esq,dir);
-	pivo = Vetor[aux];
-	printf("%d\n",pivo);
-	i = esq;
-	j = dir;
-	while (i < j) {
-		
-		while ( (Vetor[i] <= pivo) && (i < dir) )
-			i++;
-
-		while (Vetor[j] > pivo) 
-			j--;
-
-		if (i < j) 
-			Troca(Vetor,j,i);
-	}
-	
-	printVetor(Vetor,18);
-	Vetor[esq] = Vetor[j];
-	Vetor[j] = pivo;
-  	return j;
-}
-
-void QuickSortRecursivo (int Vetor[], int Esquerda, int Direita) {
-	int pospivo;
-	   if (Esquerda < Direita) {
-		pospivo = Particao(Vetor, Esquerda, Direita);
-		QuickSortRecursivo(Vetor,Esquerda,pospivo-1);
-		QuickSortRecursivo(Vetor,pospivo+1,Direita);
-	}
-}
-void QuickSortIterativo (int Vetor[], int Esquerda, int Direita) {
-    int Posicao;
-    int Pilha[ Direita - Esquerda + 1 ];
-    int top;
- 
-    top = -1;
-    Pilha[ ++top ] = Esquerda;
-    Pilha[ ++top ] = Direita;
- 
-    while ( top >= 0 )
-    {
-        Direita = Pilha[ top-- ];
-        Esquerda = Pilha[ top-- ];
- 
-        Posicao = Particao( Vetor, Esquerda, Direita );
- 
-        if ( Posicao-1 > Esquerda )
-        {
-            Pilha[ ++top ] = Esquerda;
-            Pilha[ ++top ] = Posicao - 1;
-        }
- 
-        if ( Posicao+1 < Direita )
-        {
-            Pilha[ ++top ] = Posicao + 1;
-            Pilha[ ++top ] = Direita;
-        }
-    }
-}
-
-int main() {
-    int Vetor[] = {1,2,3,4,5,8,6,4,43,43,56,23,43,4,3,75,342,532};
-    int n = sizeof( Vetor ) / sizeof( *Vetor );
-    printVetor (Vetor, n);
-    QuickSortIterativo( Vetor, 0, n - 1 );
-    printVetor( Vetor, n );
-}
diff --git a/Arquivos/makefile b/Arquivos/makefile
index 430b929..9afeaa3 100644
--- a/Arquivos/makefile
+++ b/Arquivos/makefile
@@ -2,7 +2,8 @@ all:
 	gcc -c Vetor.c
 	gcc -c Ordenação.c
 	gcc -c Pesquisa.c
+	gcc -c MedirTempo.c
 	gcc -c Main.c 
-	gcc Vetor.o Ordenação.o Main.o Pesquisa.o -o Loteria -g
+	gcc Vetor.o Ordenação.o Main.o Pesquisa.o MedirTempo.o -o Loteria -g
 	rm *.o
 
-- 
GitLab