Quick actions

cmd+k|ctrl+k

Navigation

Languages

quicksort

Snippet info

Language

C

Visibility

public

Author

zalgo

Created

2018-09-05T23:27:18Z

Updated

2018-09-05T23:27:18Z

#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;
}
INFO