Quick Sort es una mejora de la clasificación de burbujas basada en la idea binaria. La idea principal es establecer una base, colocar los números más pequeños que la base a la izquierda de la base y colocar los números más grandes que la base a la derecha de la base, y luego ordenar aún más las dos partes de los números para lograr clasificación de la matriz.
Su ventaja es la alta eficiencia y la complejidad del tiempo promedio es O (nlogn). Como sugiere el nombre, la clasificación rápida es el algoritmo de clasificación más rápido y consume pocos recursos. En el mejor de los casos, la complejidad del espacio es O (logn). se divide en partes iguales cada vez. En el caso de las matrices, el código es relativamente simple.
Su desventaja es que es inestable. Cuando la secuencia inicial está ordenada o básicamente ordenada, la complejidad temporal cae a O (n ^ 2).
Por ejemplo:
publicclassMain{//Método de implementación de fila rápida publicstaticvoidquickRow(int[]array,intlow,inthigh){inti,j,pivot;//Condición final if(low>=high){return;}i=low;j=high;/ / El nodo seleccionado, el primer número de la matriz seleccionada aquí se usa como nodo pivot=array[low]; while(i<j){// Busque un número menor que el nodo de derecha a izquierda. del ciclo, se encuentra o i =j while(array[j]>=pivot&&i<j){j--;}//Busque un número mayor que el nodo de izquierda a derecha al final del ciclo. , se encuentra o i=j while(array[i]<=pivot&&i <j){i++;}// Si se encuentran las instrucciones i!=j, intercambie los dos números if(i<j){inttemp=array [i];array[i]=array[j];array [j]=temp;}}//i==j Finaliza un ciclo, el número de nodos de intercambio y el número de puntos de encuentro array[low]=array [i];array[i]=pivot;//matriz "dividida" "Dos mitades", luego repita la operación anterior quickRow(array,low,i-1);quickRow(array,i+1,high);} publicstaticvoidmain(String[]args){int[]array={6,17, 38,59,2,10};intlow=0,high=array.length-1;quickRow(array,low,high);for( inti:array){System.out.println(i);}}}
Los resultados de ejecución son los siguientes:
2610173859