Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX 10
- void pprint(int A[]){
- int i;
- for(i=0;i<MAX;i++)
- printf("%d ", A[i]);
- printf("\n");
- }
- void intercambiar(int* elem1, int* elem2){
- int temp = *elem1;
- *elem1 = *elem2;
- *elem2 = temp;
- }
- int seleccionar_pivote(int A[], int izq, int der){
- return A[izq];
- }
- int ejecutar_particion(int A[], int izq, int der, int pivote){
- int j;
- int i=izq+1;
- for (j=izq+1;j<=der;j++){
- if (A[j]<pivote){
- intercambiar(&A[i], &A[j]);
- i++;
- }
- }
- intercambiar(&A[izq], &A[i-1]);
- return i-1;
- }
- void quick_sort(int A[], int izq, int der){
- if (izq>=der)
- return;
- int pivote = seleccionar_pivote(A, izq, der);
- int pos_pivote = ejecutar_particion(A, izq, der, pivote);
- quick_sort(A, izq, pos_pivote-1);
- quick_sort(A, pos_pivote+1, der);
- }
- int main(int argc, char** argv) {
- int N[MAX] = {1, 6, 3, 8, 9, 2, 5, 0, 7, 4};
- printf("Arreglo Original:\n");
- pprint(N);
- quick_sort(N,0,MAX-1);
- printf("Arreglo Ordenado:\n");
- pprint(N);
- return (EXIT_SUCCESS);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement