Red de conocimiento informático - Conocimiento informático - Defina una matriz int desordenada de diez elementos y ordénela usando un algoritmo óptimo.

Defina una matriz int desordenada de diez elementos y ordénela usando un algoritmo óptimo.

Puede utilizar el método de clasificación rápida con menor complejidad de tiempo

#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

}

}