Amigos que conocen C++, por favor entren. Tengo una pregunta sobre la clasificación rápida.
quick(a,b,1,n);//quick_sort es una clasificación in situ, ¿por qué desea abrir otra matriz b y su matriz original es a? Si me preguntas, el prototipo de función más simple debería ser:
void quick_sort(int *a, int beg, int rear No existe ninguna matriz b);
No soy el dios de los algoritmos, jaja. Nunca antes había visto tu implementación, y tu código también es un desastre. ¿Cómo se usa el método definido pero no inicializado dentro de la función rápida de variables? ? Me refiero a la variable i;
He visto una clasificación rápida en la que había que particionar y llamar a la función de partición de forma recursiva
void quick_sort(int *a, int p, int r)
p>{
if (p int q = partición(a, p, r);//descúbrelo donde está a[r] y llama a quick_sort recursivamente; quick_sort(a, p, q-1); quick_sort(a, q+1, r); } p> } Hay muchos códigos fuente para una clasificación rápida, puedes buscarlos en Google. Sólo como referencia