¿Cómo implementas quicksort en c? Sé que hay respuestas disponibles en línea, pero estoy buscando idealmente la forma más elegante.





 #include 

 vocación rápida (int [], int, int);

 vacío principal()
 {
    int arr [10];
    tamaño int, i;
    printf ("ingrese el tamaño de la matriz \ n");
    scanf ("% d", y tamaño);
    printf ("ingrese los elementos de la matriz \ n");
    para (i = 0; i <tamaño; i ++)
      scanf ("% d", & arr [i]);
    clasificación rápida (arr, 0, talla-1);
    printf ("matriz ordenada \ n");
      para (i = 0; i  bajo)
    {
       i = bajo;
       j = alto;
       pivote = bajo;
       mientras (i <j)
        {
          while (arr [i] <= arr [pivote] && i  arr [pivote])
            j--;
          si (i <j)
          {
            tmp = arr [i];
            arr [i] = arr [j];
            arr [j] = tmp;
          }
      }
      tmp = arr [pivote];
      arr [pivote] = arr [j];
      arr [j] = tmp;

    clasificación rápida (arr, bajo, j-1);
    clasificación rápida (arr, j + 1, alta);

   }
 }

A veces, lo más elegante es no reinventar la rueda.
qsort (ver sort array – página del manual de Linux) es una función de biblioteca estándar C.