Commit 14b70bad authored by Felipe Pereira's avatar Felipe Pereira

QuickSort Corrigido

parent 61b7599f
File added
......@@ -5,7 +5,7 @@
int vetorDes[MAXVETOR], vetorOrd[MAXVETOR];
void SelectSort(int vetor[MAXVETOR], int tam)
void SelectSort(int vetor[], int tam)
{
int i, j, min, aux;
......@@ -23,7 +23,7 @@ void SelectSort(int vetor[MAXVETOR], int tam)
}
}
void BubbleSort(int vetor[MAXVETOR], int tam)
void BubbleSort(int vetor[], int tam)
{
int i, j, aux;
......@@ -39,37 +39,34 @@ void BubbleSort(int vetor[MAXVETOR], int tam)
}
}
int Mediana(int vetor[MAXVETOR], int esq, int meio, int dir)
int Mediana(int vetor[], int esq, int meio, int dir)
{
/*int i, vetorAux[4];
vetorAux[1] = vetor[esq];
vetorAux[2] = vetor[meio];
vetorAux[3] = vetor[dir];
BubbleSort(vetorAux, 4);
if(vetorAux[2] == vetor[esq])
if((vetor[esq] >= vetor[dir]) && (vetor[esq] <= vetor[meio]))
return esq;
else if(vetorAux[2] == vetor[meio])
else if((vetor[dir] >= vetor[esq]) && (vetor[dir] <= vetor[meio]))
return dir;
else if((vetor[meio] >= vetor[esq]) && (vetor[meio] <= vetor[dir]))
return meio;
else
return dir;*/
return esq;
return meio;
}
void Particao(int vetor[MAXVETOR], int esq, int dir, int *posicaoPivo)
void Particao(int vetor[], int esq, int dir, int *posicaoPivo)
{
int i, j, pivo, aux;
int i, j, pivo, aux, mdn;
pivo = Mediana(vetor, esq, dir/2, dir);
mdn = Mediana(vetor, esq, (esq + dir)/2, dir);
aux = vetor[esq];
vetor[esq] = vetor[mdn];
vetor[mdn] = aux;
pivo = vetor[esq]; //Mediana(vetor[esq], vetor[(esq + dir)/2], vetor[dir]);
i = esq;
j = dir;
while(i < j)
{
while((vetor[i] <= pivo) && (i < dir))
i++;
while(vetor[j] >= pivo)
while(vetor[j] > pivo)
j--;
if(i < j)
{
......@@ -83,7 +80,7 @@ void Particao(int vetor[MAXVETOR], int esq, int dir, int *posicaoPivo)
*posicaoPivo = j;
}
void QuickRec(int vetor[MAXVETOR], int esq, int dir)
void QuickRec(int vetor[], int esq, int dir)
{
int posicaoPivo;
......@@ -100,7 +97,7 @@ void QuickIt()
}
int PesqSec(int vetor[MAXVETOR], int tam, int elem)
int PesqSec(int vetor[], int tam, int elem)
{
int i;
......@@ -114,7 +111,7 @@ int PesqSec(int vetor[MAXVETOR], int tam, int elem)
return 0;
}
int PesqBin(int vetor[MAXVETOR], int elem, int esq, int dir)
int PesqBin(int vetor[], int elem, int esq, int dir)
{
int meio;
......@@ -134,7 +131,7 @@ void TempoExecucao()
}
void OrdenaVetor(int vetorDes[MAXVETOR], int vetorOrd[MAXVETOR], int ordenacao, int tam)
void OrdenaVetor(int vetorDes[], int vetorOrd[], int ordenacao, int tam)
{
int i;
......@@ -150,7 +147,7 @@ void OrdenaVetor(int vetorDes[MAXVETOR], int vetorOrd[MAXVETOR], int ordenacao,
BubbleSort(vetorOrd, tam);
break;
case 3:
QuickRec(vetorOrd, 1, tam - 1);
QuickRec(vetorOrd, 1, tam);
break;
case 4:
QuickIt();
......@@ -158,7 +155,7 @@ void OrdenaVetor(int vetorDes[MAXVETOR], int vetorOrd[MAXVETOR], int ordenacao,
}
}
void GeraVetor(int vetor[MAXVETOR], int tam, int numMax)
void GeraVetor(int vetor[], int tam, int numMax)
{
int i;
srand(time(NULL));
......@@ -166,7 +163,7 @@ void GeraVetor(int vetor[MAXVETOR], int tam, int numMax)
vetor[i] = (rand() % numMax) + 1;
}
void Setup(int vetorDes[MAXVETOR], int vetorOrd[MAXVETOR], int *tam, int *numMax)
void Setup(int vetorDes[], int vetorOrd[], int *tam, int *numMax)
{
int ordenacao;
......@@ -199,7 +196,7 @@ void Setup(int vetorDes[MAXVETOR], int vetorOrd[MAXVETOR], int *tam, int *numMax
OrdenaVetor(vetorDes, vetorOrd, ordenacao, *tam);
}
void ImprimeVetor(int vetor[MAXVETOR], int tam)
void ImprimeVetor(int vetor[], int tam)
{
int i;
printf("[");
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment