¿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.

More Interesting

Cómo demostrar que este gráfico todavía puede estar fuertemente conectado

Si existen múltiples rutas más cortas entre 2 nodos en un gráfico no dirigido, ¿es posible imprimirlas todas utilizando el algoritmo de Dijkstra?

¿Cuál es el mejor algoritmo de programación que hayas creado?

¿Cuál es la mejor manera de usar la notación O grande para determinar la tasa de crecimiento del tiempo de ejecución de un algoritmo?

¿Cuáles son los mejores cursos en línea para estructuras de datos y algoritmos (deben enfatizar más en escribir código)?

¿Cuál es el código para dividir una matriz en dos mitades iguales?

¿Por qué no usamos el aprendizaje automático para mejorar los modelos climáticos?

Java: ¿Cómo podemos verificar si un número es feliz o no mediante el uso de funciones de cadena simples y bucles sin ningún arreglo?

Tengo 23 años. ¿Es demasiado tarde para estudiar la introducción a algoritmos por CLRS?

¿Cuáles son algunos patrones de diseño de C ++ para aplicaciones en tiempo real como el comercio algorítmico?

¿Cuál es el algoritmo de clasificación más rápido para una matriz de números grandes (hasta 1,000,000,000,000)?

¿Qué papel juega la comprensión de los algoritmos y las estructuras de datos en la construcción de proyectos, conseguir un trabajo y hacer su trabajo?

¿La comprensión humana sigue un algoritmo de compresión de datos?

¿Cuáles son los algoritmos de coincidencia de patrones más comunes?

¿Resolver todos los problemas en Project Euler facilita la resolución de problemas en Topcoder?