La clasificación rápida puede sentirse muy rápido cuando escuchas este nombre, pero el peor caso de su complejidad del tiempo de algoritmo es lo mismo que la clasificación de inserción. La razón por la que se vuelve rápido es porque su eficiencia promedio es más rápida que la clasificación rápida. Necesita abrir un nuevo espacio de almacenamiento directamente en la matriz original. La idea de la clasificación rápida es muy simple, que es seleccionar una palabra clave K para dividir la matriz original en dos partes G1 y G2. para k. El método de clasificación en el código es la descripción de la declaración en este momento. El algoritmo clave es encontrar la ubicación de K y dividir la matriz original en dos partes. El método GetPlocation es el núcleo de la clasificación rápida. Su principio de implementación es un poco como la clasificación de inserción pero un poco similar. Cada vez, el elemento en la posición final en el mapa se usa como palabra clave. y J son más grandes que el núcleo. sigue adelante. Después de un bucle como este, el comienzo a finalizar 1 se separa por tamaño.
La copia del código es la siguiente:
Clase pública Quicksort {
public int getPlocation (int [] map, int inicio, int end) {
int core = map [end];
int i = start-1;
para (int j = start; j <= end-1; j ++) {
if (map [j] <= core) {
i ++;
int cache = map [j];
mapa [j] = map [i];
mapa [i] = caché;
}
}
i ++;
map [end] = map [i];
mapa [i] = core;
regresar i;
}
public void sort (int [] map, int inicio, int end) {
if (inicio <end) {
int p = getplocation (map, inicio, finalización);
ordenar (mapa, inicio, P-1);
ordenar (mapa, p+1, final);
}
}
public static void main (string [] args) {
int [] map = new int [] {4,1,5,3,7,12,65,7};
QuickSort QS = new Quicksort ();
Qs.Sort (mapa, 0, map.length-1);
para (int i = 0; i <map.length; i ++) {
System.out.println (map [i]);
}
}
}