From 3bf379a6a957d49602dd68afff19417bac03373e Mon Sep 17 00:00:00 2001 From: Fernando Erd <fce15@inf.ufpr.br> Date: Fri, 11 Dec 2015 21:05:28 -0200 Subject: [PATCH] Arrumando a Main --- Arquivos/Estruturas.h | 4 +- Arquivos/Loteria | Bin 13744 -> 13776 bytes Arquivos/Main.c | 21 ++++++++- "Arquivos/Ordena\303\247\303\243o.c" | 62 ++++++++++++++++++++------- 4 files changed, 69 insertions(+), 18 deletions(-) diff --git a/Arquivos/Estruturas.h b/Arquivos/Estruturas.h index 326d51f..6ac3e15 100644 --- a/Arquivos/Estruturas.h +++ b/Arquivos/Estruturas.h @@ -4,5 +4,5 @@ #include <stdlib.h> #include <stdbool.h> #include <sys/time.h> -#define TAM 100 //tamanho do vetor -#define NUMMAX 10 //constante que tem o máximo de valores +#define TAM 10 //tamanho do vetor +#define NUMMAX 5 //constante que tem o máximo de valores diff --git a/Arquivos/Loteria b/Arquivos/Loteria index 08a9e5928885a26d371d38c973e4ee089c824de9..de5997e00e653a3e13ffce9849ebf96a0c075f61 100755 GIT binary patch delta 3414 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 XbDIwuS}?Ksrlw>j=579Nyps_C^{RCy delta 2491 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 diff --git a/Arquivos/Main.c b/Arquivos/Main.c index 8604219..0f7aa86 100644 --- a/Arquivos/Main.c +++ b/Arquivos/Main.c @@ -59,7 +59,7 @@ void TempoQuickSortIterativo (int *Vetor) { int main () { int Vetor[TAM], Escolhidos[4]; - int comando; + int comando, Ordena; printf ("1 Para Jogar e 2 Para Comparar Algoritmos\n"); scanf ("%d", &comando); @@ -67,7 +67,26 @@ int main () { case 1: LerDados (Escolhidos); GeraVetor (Vetor); + srand (time (NULL)); + Ordena = rand() % 3; + 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; + } VerificaNumero (Vetor, Escolhidos); ImprimeVetor (Vetor); break; diff --git "a/Arquivos/Ordena\303\247\303\243o.c" "b/Arquivos/Ordena\303\247\303\243o.c" index ea87549..515df4b 100644 --- "a/Arquivos/Ordena\303\247\303\243o.c" +++ "b/Arquivos/Ordena\303\247\303\243o.c" @@ -38,21 +38,53 @@ void BubbleSort (int *Vetor) { } } -int Particao (int Vetor[], int Esquerda, int Direita) { - int Pivo, i, j; - - Pivo = Vetor[Direita]; - i = (Esquerda - 1); - for (j = Esquerda; j <= Direita- 1; j++) - { - if (Vetor[j] <= Pivo) - { - i++; - Troca (Vetor, i, j); - } - } - Troca (Vetor,i + 1, Direita); - return (i+1); +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]; + 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); + } + + Vetor[esq] = Vetor[j]; + Vetor[j] = pivo; + return j; } void QuickSortRecursivo (int Vetor[], int Esquerda, int Direita) { -- GitLab