matheus__serpa icon

Untitled

matheus__serpa | PRO | 05/19/20 08:40:29 PM UTC | 0 ⭐ | 1654 👁️ | Never ⏰ | []
C |

680 B

|

None

|

0 👍

/

0 👎

void troca(int *x, int *y){
    int aux = *x;
    *x = *y;
    *y = aux;
}
 
int particao(int *A, int esq, int dir){
    int pivo = A[dir];
    int j, i = esq;
 
    for(j = esq; j < dir; j++)
        if(A[j] <= pivo){
            troca(&A[i], &A[j]);
            i++;
        }
    troca(&A[i], &A[dir]);
    return i;
}
 
void quick_sort(int *A, int esq, int dir){
    if(esq < dir){
        int pos = particao(A, esq, dir);
        quick_sort(A, esq, pos - 1);
        quick_sort(A, pos + 1, dir);
    }
}
 
int main(){
    int i, A[5] = {4, 7, 1, 5, 3};
 
    for(i = 0; i < 5; i++)
        printf("%d ", A[i]);
 
    printf("\n");
    quick_sort(A, 0, 4);
 
    for(i = 0; i < 5; i++)
        printf("%d ", A[i]);
}

Comments