Ordenar de menor a mayor por el método del quicksort

Leer un Vector A de N elementos, ordenar de menor a mayor por el método del quicksort

#include <stdio.h>
#define MAX 100
int a[MAX];
void leer_vector( int a[],int n){
    int i;
 printf("Ingrese los valores...\n");
 for(i=1;i<=n;i++)
 { printf("A[%d]= ",i);
  scanf("%d",&a[i]);
 }
 a[0]=n;
}
void mostrar_vector( int a[] ){
    int i,n=a[0];
    for(i=1;i<=n;i++)
        printf(" - %d ",a[i]);
}
void quicksort_vector(int A[],int izq, int der ){

    int i, j, x , aux;
    i = izq;
    j = der;
    x = A[ (izq + der) /2 ];
    do{
        while( (A[i] < x) && (j <= der) ){
            i++;
        }
        while( (x < A[j]) && (j > izq) ){
            j--;
        }
        if( i <= j ){
            aux = A[i];
            A[i] = A[j];
            A[j] = aux;
            i++;
            j--;
        }
    }while( i <= j );
    if( izq < j )
        quicksort_vector( A, izq, j );
    if( i < der )
        quicksort_vector( A, i, der );
}
int main() {
    int n;
    printf("\nORDENAR UN VECTOR METODO QUICKSORT\n");
    do {
  printf("Ingrese cantidad de elementos menor a 100: ");
  scanf("%d",&n);
 } while( (n<0)||(n>MAX) );
 leer_vector(a,n);
 printf("\nVector original: \n");
 mostrar_vector(a);
    quicksort_vector(a,1,n);
 printf("\nvector ordenado: \n");
 mostrar_vector(a);
 printf("\n");
 return 0;
}

Comentarios