Defina una matriz int desordenada de diez elementos y ordénela usando un algoritmo óptimo.
#include lt;stdio.hgt;
#define N 10
void quicksort(int* a, int izquierda, int derecha);
void main()
{
int a[N] = {5, 4, 7, 2, 8, 3, 1, 9, 1, 6};
int i
clasificación rápida (a, 0, N - 1); 0; i lt; N; i )
{
printf ("d ", a[i]); >}
void quicksort(int* a, int left, int right)
{
int s, i, j, temp;
if (left lt; right) //0~N -1
{
s= a[left]; //primero como eje
i = izquierda;
j = derecha 1; //última posición
while (1)
{
while ( i lt; N - 1 amp; amp; a[ i] lt; //hasta encontrar un elemento cuyo elemento sea mayor que el eje
while (j - 1 gt; -1 amp ; amp; a[--j] gt; s); //hasta que encuentres un elemento cuyo elemento sea más pequeño que el eje
if (i gt;= j) //saltar del bucle if i gt;= j
{
break;
}
//intercambia dos elementos, el más grande que s es a la derecha de s, el más pequeño que s está a la derecha
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
a[left] = a[j] // El elemento más a la izquierda se reemplaza por el elemento en la posición j, El elemento es menor que s
a[j] = s;
quicksort(a, left, j - 1); // Recursivo izquierdo
quicksort(a); , j 1, derecha); // Recursiva derecha
}
}