Algoritimo Quicksort
Ensaios: Algoritimo Quicksort. Pesquise 862.000+ trabalhos acadêmicosPor: os1000r • 14/10/2013 • 622 Palavras (3 Páginas) • 315 Visualizações
#include <stdio.h>
#include <stdlib.h>
int vetor[10];
void mostravetor()
{
int i;
for (i=0; i<=9; i++)
{
printf("\n %i", vetor[i]);
}
}
int particao(int inf, int sup)
{
int pivo, temp, baixo, alto;
pivo = vetor[inf];
alto = sup;
baixo = inf;
while(baixo < alto)
{
while((vetor[baixo] <= pivo) && (baixo < sup))
{
baixo++; // Vou incrementando até chegar no maior que o pivo
}
while(vetor[alto] > pivo)
{
alto--; // Vou decrementando até chegar no menor que pivo
}
if(baixo < alto)
{ // Troco os valores encontrados
temp = vetor[baixo];
vetor[baixo] = vetor[alto];
vetor[alto] = temp;
}
}
// Coloco o pivo no meio e recomeço para cada lado
vetor[inf] = vetor[alto];
vetor[alto] = pivo;
return alto;
}
void quicksort(int esq, int dir)
{
int i;
if(dir > esq)
{
i = particao(esq, dir);
quicksort(esq, i-1);
quicksort(i+1, dir);
}
}
void quicksort(int v[], int esq, int dir)
{
int i=esq, j=dir, pivo, aux;
pivo=v[(i+j)/2];
do {
while(v[i] < pivo )
...