Cómo crear una ordenación rápida en C

#include
#include
#define MAX 7

int intArray [MAX] = {4,6,3,2,1,9,7};

printline vacío (recuento int) {
int i;

para (i = 0; i <cuenta-1; i ++) {
printf (“=”);
}

printf (“= \ n”);
}

pantalla vacía () {
int i;
printf (“[“);

// navega por todos los elementos
para (i = 0; i <MAX; i ++) {
printf (“% d”, intArray [i]);
}

printf (“] \ n”);
}

intercambio nulo (int num1, int num2) {
int temp = intArray [num1];
intArray [num1] = intArray [num2];
intArray [num2] = temp;
}

partición int (int izquierda, int derecha, int pivote) {
int leftPointer = left -1;
int rightPointer = right;

while (verdadero) {
while (intArray [++ leftPointer] <pivot) {
//hacer nada
}

while (rightPointer> 0 && intArray [–rightPointer]> pivot) {
//hacer nada
}

if (leftPointer> = rightPointer) {
rotura;
} más {
printf (“elemento intercambiado:% d,% d \ n”, intArray [leftPointer], intArray [rightPointer]);
intercambio (leftPointer, rightPointer);
}
}

printf (“pivote intercambiado:% d,% d \ n”, intArray [leftPointer], intArray [right]);
intercambio (leftPointer, right);
printf (“Matriz actualizada:”);
monitor();
volver leftPointer;
}

void quickSort (int left, int right) {
if (derecha-izquierda <= 0) {
regreso;
} más {
int pivot = intArray [derecha];
int divisionPoint = partición (izquierda, derecha, pivote);
quickSort (izquierda, particiónPoint-1);
quickSort (PartitionPoint + 1, derecha);
}
}

principal() {
printf (“Matriz de entrada:”);
monitor();
línea de impresión (50);
quickSort (0, MAX-1);
printf (“Matriz de salida:”);
monitor();
línea de impresión (50);
}
SALIDA:

Matriz de entrada: [4 6 3 2 1 9 7]
==================================================
pivote intercambiado: 9,7
Matriz actualizada: [4 6 3 2 1 7 9]
pivote intercambiado: 4,1
Matriz actualizada: [1 6 3 2 4 7 9]
artículo intercambiado: 6,2
pivote intercambiado: 6,4
Matriz actualizada: [1 2 3 4 6 7 9]
pivote intercambiado: 3,3
Matriz actualizada: [1 2 3 4 6 7 9]
Matriz de salida: [1 2 3 4 6 7 9]
==================================================

Eche un vistazo a esto : CLASIFICACIÓN RÁPIDA CON EL PROGRAMA C

Espero que esto ayude

Muchas gracias

Este es un buen video, esto puede ayudarlo a comprender el algoritmo. Puedes hacer la codificación por ti mismo.

Quicksort: Particionar una matriz

Feliz codificación.

Este enlace puede ayudarte

QuickSort – GeeksQuiz

Aquí está mi sitio web, puede encontrar su programa y algoritmo para una clasificación rápida aquí:

Progspace

Aquí puede encontrar todos los programas de laboratorio, preguntas de viva o entrevista y tutoriales escritos en un lenguaje simple.

Llame a qsort desde la biblioteca estándar de C.

Las otras respuestas son correctas, pero reinventan la rueda implementando g QuickSort desde cero.