Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int particiona(int *A, int p, int r)
- {
- int pivo = p, i, j;
- int aux;
- pivo = A[r];
- i = p - 1;
- for(j = p; j < r ; j++)
- {
- if(A[j] <= pivo)
- {
- i = i + 1;
- aux = A[j];
- A[j] = A[i];
- A[i] = aux;
- }
- aux = A[i + 1];
- A[i + 1] = A[r];
- A[r] = aux;
- return i++;
- }
- }
- void quick(int *A, int p, int r)
- {
- int pivo;
- if(p < r)
- {
- pivo = particiona(A, p, r);
- quick(A, p, pivo - 1);
- quick(A, pivo + 1, r);
- }
- }
- int main()
- {
- int i, n, p, r;
- int *A;
- printf("Digite o tamanho da entrada:\n");
- scanf("%d", &n);
- A = (int*)malloc(sizeof(int) * n);
- printf("Digite os numeros:\n");
- for(i = 0; i <= n - 1; i++)
- {
- scanf("%d", &A[i]);
- }
- printf("\n");
- quick(A, 0, n - 1);
- for(i = 0; i <= n - 1; i++)
- {
- printf("%d-", A[i]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment