#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void quick_sort(int vet[], int esq, int dir){
//declara pivo como inicial
int pivo = esq, i, ch, j;
//percorre o vetor
for (i=esq+1; i<=dir; i++){
j=i;
//is v[pivo] > ??
if(vet[j] > vet[pivo]){
ch = vet[j];
while(j>pivo){
//reorganiza as coisa
vet[j] = vet[j-1];
j--;
}
vet[j] = ch;
pivo++;
}
}
//verificação maior, menor
if(pivo-1 >= esq) quick_sort(vet, esq, pivo-1);
if(pivo+1 <= dir) quick_sort(vet, pivo+1, dir);
}
int main(void) {
srand(time(NULL));
int *v, n, i;
printf("Tamanho do vetor: \n");
scanf("%d", &n);
v = (int *)malloc(n*sizeof(int));
for (i=0; i<n; i++){
v[i] = rand() % 100 + 1;
}
for (i=0; i<n; i++){
printf("%d ", v[i]);
}
quick_sort(v,0,n-1);
printf("\nVetor ordenado \n");
for (i = 0; i < n; i++){
printf("%d ", v[i]);
}
return 0;
}