Sin embargo, muchos libros no lo explican muy claramente y diferentes materiales didácticos tienen diferentes métodos de implementación.
Escribiré aquí la idea de clasificación rápida más simple para su referencia.
Espero que, independientemente del idioma que utilice, pueda comprender fácilmente las ideas de clasificación rápida y los métodos de escritura a partir de este código simple.
Copie el código de código de la siguiente manera:
función ordenación_rápida(lista, inicio, fin) {
si (inicio <fin) {
var pivotpos = partición(lista, inicio, fin); //Encontrar la base de clasificación rápida;
quick_sort(list, start, pivotpos - 1 // Ordena rápidamente el de la izquierda);
quick_sort(list, pivotpos + 1, end); // Ordena rápidamente el correcto
}
}
//Ajusta una secuencia en dos áreas divididas por el número base, un lado no es menor que el número base y el otro lado no es mayor que el número base
función partición(lista, inicio, fin) {
var pivotpos = inicio;
var pivote = lista[inicio];
var tmp;
for(var i = inicio + 1; i <= fin; i ++) {
si (lista[i] <pivote) {
tmp = lista[i];
pospivote += 1;
lista[i] = lista[pivotpos];
lista[pivotpos] = tmp;
}
}
tmp = lista[inicio];
lista[inicio] = lista[pivotpos];
lista[pivotpos] = tmp;
devolver pivotpos;
}
lista var = [8,2,4,65,2,4,7,1,9,0,2,34,12];
quick_sort(lista, 0, lista.longitud);