From cbf6112bff10304925b50b113ea90872c1b91972 Mon Sep 17 00:00:00 2001 From: Fernando Erd <fce15@inf.ufpr.br> Date: Fri, 11 Dec 2015 22:44:06 -0200 Subject: [PATCH] Comentando e identando --- "Arquivos/Fun\303\247\303\265es.h" | 3 ++ Arquivos/Loteria | Bin 13776 -> 13776 bytes Arquivos/Main.c | 53 ++++++++++++++--------- "Arquivos/Ordena\303\247\303\243o.c" | 60 +++++++++++++++------------ Arquivos/Pesquisa.c | 4 +- Arquivos/Vetor.c | 1 + 6 files changed, 73 insertions(+), 48 deletions(-) diff --git "a/Arquivos/Fun\303\247\303\265es.h" "b/Arquivos/Fun\303\247\303\265es.h" index c64b0a2..7185223 100644 --- "a/Arquivos/Fun\303\247\303\265es.h" +++ "b/Arquivos/Fun\303\247\303\265es.h" @@ -3,5 +3,8 @@ void LerDados (int *Vetor); void GeraVetor (int *Vetor); void ImprimeVetor (int *Vetor); void SelectSort (int *Vetor); +void BubbleSort (int *Vetor); +void QuickSortRecursivo (int Vetor[], int Esquerda, int Direita); +void QuickSortIterativo (int Vetor[], int Esquerda, int Direita); void VerificaNumero (int *Vetor, int *Escolhidos); void PesquisaBinaria (int *Vetor, int Elem); diff --git a/Arquivos/Loteria b/Arquivos/Loteria index de5997e00e653a3e13ffce9849ebf96a0c075f61..f5cdde9c48e3384aa9ecd0c9209422479f765abc 100755 GIT binary patch delta 2189 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 F%mBDOK^_1A delta 2280 zcmcbReIa|o1+Equ1~6!mnRsiT&;kiChhc$)1DLTuV)81+TOzYtStl^e_uk0Z!6d78 zU1Foe#9doA&tSU6EHFXLfx+YWK?N{%e6`TzCbk<)OT;F}u<J7I5S!f1KEr9Zm;=KO zkZCX0|NZ~}xa%Jf`?W;3>z~eJ`wzk;C;k2ZzuEN<V{`2v&bmkYxfmE2Uc~+V|9}5c zvB{|%dQ1n!Hc#c4$Xf3h6713Z#=xVq_C#mtk<QQq9-R+7JCAg`9_bD}pn0hCLh}Je zkK_v;&94|eIzu0LBwz6Cyx_PKWGP6v^WttWbB4#k2TUHl0n9rD7#J8lnqM$_FkaXV zV($XWfB)=}eL%oN^N2_11CQnd%pM0{FoCqxdvv<KIPQAm|9_BkZ!mgvyT0fSz2T93 zsoVERC(ndtS5&bBojem>u4Q0g=ytu)8}Pp~^oB=w=nIb--7HO=t_QFQg8b3#d&HyL z^+e}6kIv&S=KcNuzti<jx9gqe7mW4Ru1D&$(QSd*-0ga&*W*9JO`SXwK-vy4TDu;o z1?vK<Kyoz>CpXvLVBqic{Qv*IPv;Yl-qa7#jxn)^Lp?etAK({LGX4gN$Qz)5dMyKT zD9D)?zyAl>d;-LFpKQl3%k<^z<oSXDJQv_`-0^kte?D2a%C89RiZJcs2<?#6!uJyr z!i}{z_|+L0>aKb8x_;OPvJ+&3Da7m_aI;T-0h#T;>kGncZJ5~+-ylxg1xi&gBOta! z|3S6o42mr|ljjKr@+gSIQZNJ9l7Nq&u~^do6{jVif8(=c@n=vl)d#?BG5`Gk|4C3_ zKlNyS6R^KQ+=1bR@aO;kJ$hYtcyu1yzY4B0_w)b%-L5;De=wHtHUD7ZZ&6}oV0h`v z$iU#y>v{kbP7z<g`YwRji@yB-zaJEUFH}GO|KEB1#lKJg|G%&Vu@CO54+{+q?L6`Q zRp*I=Kjc9fsnc~&cj%tZ3ycRCFK8a@JOSdn?g80l+WdpDp0o8piO9=|3=9m-KbT7F zn}0BuB))87U|`t40p#H1PY8?GeEt9bb=LkHAaQSmI3xx{zy1IJ+IK%2gM<Ua3%$u7 zg+zoQ5-h*||9`Ev-vA`e4ie{ph}->|%pojiEcE67|JMc{y{=%t_5DUzXY&Waevian zvpG^Yh><5j0v4UVA0}@X39&*5ynPRfs6UL&u0I%?Ykx4;ErJwN4R9@|--F^NjbFY6 z6p)kcMMY(Auq!Zxdi3go=wKhsr-rvZ4*q5KXnw=-!uI{<LQz9Tm4L*eL<O(>^u!{C zR0SgiFxNRhw;-`7u}Hx&Cq2I?vt;u=F*e3}fw%wvb1*V69C-WxKPZE(efR&r0V4wg z^ZWn*0~i??%HIF~U%|-0ApYV1{~3%746Psj|KGvLz`*_S|Nk3|3=G{L|NsBN$iN`^ z<^O*PCI$w@umAsBFflMRef|GGf{B5F;rsvp4NMFSyT1SbzkrE>q4LN7{|A^D7@U6o z|NnrAL63p^*Z=<v%nS@Oe*gckz|6p4_vinA2WAF_=0E@cConTGH2nSlzk!*7;ltnm z|4&RVlu&1S@MiKX2|Y%J$tNY$l}g|K{~rbl8b>~XHYR6YHl{!xb`Ayx6$S=|6b1%{ z)o&*YNvbh@dpp@mQjV$o-Q*}qIi{oUCRa(yF=@Y_JWEoJsr&upU6OK4KR-^sB`N3m z@YDbQi6{ofzzxh{WMEMG{QrL)BLf2i%tH4b=4KY=B1W((1_n_5HieOap<=S7lyv<T zMg|6<uh47&)4{Y0tQMs53L^u<#;^bXpG2|o2weUPBLhR!H{9|fObiUn-~a#bMRpN$ z2iP$(3=C`xCQJ+r1(R<|NwbA8F))1lG5MF26l)0+1B3KrNoi@eDNGCuKYmWOl6GRf z!^FU#u(?rsKI3EoIR~aGVw;2H?y)f$2~0Lp)#I8X2C1Q^h)vE?H4|I_<t`8dIh=vv z|KyFT`dmoW_$yU2!30T&o&-sVB9+aCYUM13Fry%X5R#dJp8;kjL<B-IGYBv&nEX*o zltqvsL2~maEjuQr2ARo5y33d*h)uqwtH&870I_8MWI?@lrYT~RXX&|dN(w>*PfmWR zr_N*{GFeDJjj4`ta+Q9bl(Hy9?hC{QhK)=N41!?mCo>u7NrIXdAemGU!N9=qh>3wg oh=G@3!DLSZea3r}D-FsyR|`Rm=$-u2;5_Fem}Q$U8vbVn06%ASVE_OC diff --git a/Arquivos/Main.c b/Arquivos/Main.c index 0f7aa86..a927373 100644 --- a/Arquivos/Main.c +++ b/Arquivos/Main.c @@ -1,6 +1,7 @@ #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; @@ -15,6 +16,7 @@ void TempoSelectSort (int *Vetor) { 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; @@ -29,6 +31,7 @@ void TempoBubbleSort (int *Vetor) { 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; @@ -43,6 +46,7 @@ void TempoQuickSortRecursivo (int *Vetor) { 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; @@ -61,36 +65,45 @@ int main () { int Vetor[TAM], Escolhidos[4]; int comando, Ordena; - printf ("1 Para Jogar e 2 Para Comparar Algoritmos\n"); + printf ("1 - Jogar\n2 - Comparar Algortimos\n"); scanf ("%d", &comando); switch (comando) { - case 1: + case 1: LerDados (Escolhidos); GeraVetor (Vetor); + //Sorteia o Algoritmo para Ordenar o Vetor srand (time (NULL)); - Ordena = rand() % 3; + Ordena = rand() % 4; + switch (Ordena) { - case 0: - printf ("O Vetor Foi Ordenado Pelo SelectSort\n"); - SelectSort (Vetor); - break; - case 1: - printf ("O Vetor Foi Ordenado Pelo BubbleSort\n"); - BubbleSort (Vetor); - break; - case 2: - printf ("O Vetor Foi Ordenado Pelo QuickSort Recursivo\n"); - QuickSortRecursivo (Vetor, 0, TAM); - break; - case 3: - printf ("O Vetor Foi Ordenado Pelo QuickSort Iterativo\n"); - QuickSortIterativo (Vetor, 0, TAM); - break; + + case 0: + printf ("O Vetor Foi Ordenado Pelo SelectSort\n"); + SelectSort (Vetor); + break; + + case 1: + printf ("O Vetor Foi Ordenado Pelo BubbleSort\n"); + BubbleSort (Vetor); + break; + + case 2: + printf ("O Vetor Foi Ordenado Pelo QuickSort Recursivo\n"); + QuickSortRecursivo (Vetor, 0, TAM); + break; + + case 3: + printf ("O Vetor Foi Ordenado Pelo QuickSort Iterativo\n"); + QuickSortIterativo (Vetor, 0, TAM); + break; } + //Chama a Pesquisa VerificaNumero (Vetor, Escolhidos); ImprimeVetor (Vetor); break; - case 2: + + //Tempo de Execução dos programas + case 2: TempoSelectSort (Vetor); TempoBubbleSort (Vetor); TempoQuickSortRecursivo (Vetor); diff --git "a/Arquivos/Ordena\303\247\303\243o.c" "b/Arquivos/Ordena\303\247\303\243o.c" index 515df4b..88a0328 100644 --- "a/Arquivos/Ordena\303\247\303\243o.c" +++ "b/Arquivos/Ordena\303\247\303\243o.c" @@ -1,7 +1,7 @@ //Arquivo com os Algoritmos de Ordenação #include "Estruturas.h" - +//Função para trocar valores void Troca (int *Vetor, int i, int j) { int aux; @@ -10,6 +10,7 @@ void Troca (int *Vetor, int i, int j) { Vetor [j] = aux; } +//Algoritmo de Ordenação do SelectSort void SelectSort (int *Vetor) { int i, j, menor; @@ -22,6 +23,7 @@ void SelectSort (int *Vetor) { } } +//Algoritmo de Ordenação do BubbleSort void BubbleSort (int *Vetor) { bool trocou; int i; @@ -38,6 +40,7 @@ void BubbleSort (int *Vetor) { } } +//Acha a posicao da Mediana int Mediana(int *Vetor, int esq, int dir) { int aux; aux = (dir+esq)/2; // elem. do meio do vetor @@ -64,6 +67,7 @@ int Mediana(int *Vetor, int esq, int dir) { } +//Particiona o QuickSort int Particao (int *Vetor, int esq, int dir) { int i,j,pivo,aux; aux = Mediana(Vetor,esq,dir); @@ -87,6 +91,7 @@ int Particao (int *Vetor, int esq, int dir) { return j; } +//Algoritmo de Ordenação do QuickSort com Recursão void QuickSortRecursivo (int Vetor[], int Esquerda, int Direita) { int pospivo; if (Esquerda < Direita) { @@ -95,32 +100,33 @@ void QuickSortRecursivo (int Vetor[], int Esquerda, int Direita) { QuickSortRecursivo(Vetor,pospivo+1,Direita); } } + +//Algoritmo de Ordenação do QuickSort Iterativo 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 Posicao; + int Pilha[TAM]; + int top; + + top = -1; + //Empilha os Indices + Pilha[++top] = Esquerda; + Pilha[++top] = Direita; + while (top >= 0) { + //Desempilha os Indices + Direita = Pilha[top--]; + Esquerda = Pilha[top--]; + + Posicao = Particao(Vetor, Esquerda, Direita); + + if (Posicao-1 > Esquerda) { + //Empilha os Indices + Pilha[++top] = Esquerda; + Pilha[++top] = Posicao - 1; + } + if (Posicao+1 < Direita) { + //Empilha os Indices + Pilha[++top] = Posicao + 1; + Pilha[++top] = Direita; + } } } diff --git a/Arquivos/Pesquisa.c b/Arquivos/Pesquisa.c index 9e33b41..c6f88e8 100644 --- a/Arquivos/Pesquisa.c +++ b/Arquivos/Pesquisa.c @@ -1,6 +1,7 @@ //Arquivo com os algoritmos de busca #include "Estruturas.h" +//Algoritmo de Pesquisa Binaria int PesquisaBinaria (int *Vetor, int Elem) { int meio, esquerda, direita; @@ -20,6 +21,7 @@ int PesquisaBinaria (int *Vetor, int Elem) { return -1; //return = -1 pq o se o elemento estiver na primeira posição irá retornar 0 (posição que ele se encontra no vetor) } +//Algoritmo de Pesquisa Sequencial int PesquisaSequencial(int *Vetor, int Elem) { int i; @@ -30,7 +32,7 @@ int PesquisaSequencial(int *Vetor, int Elem) { return -1; //-1 pq o elemento pode estar na posição zero } - +//Chama as funções de Pesqusia para procurar o número no vetor void VerificaNumero (int *Vetor, int *Escolhidos) { int i, acertos; diff --git a/Arquivos/Vetor.c b/Arquivos/Vetor.c index 30c6fb8..365ff39 100644 --- a/Arquivos/Vetor.c +++ b/Arquivos/Vetor.c @@ -1,5 +1,6 @@ #include "Estruturas.h" +//Lê os 4 números que o usuario entra void LerDados (int *Vetor) { int i; printf ("Digite 4 números: "); -- GitLab