No entanto, muitos livros não explicam isso de forma muito clara e diferentes materiais didáticos têm diferentes métodos de implementação.
Escreverei aqui a ideia de classificação rápida mais simples para sua referência.
Espero que, independentemente da linguagem que você use, você possa compreender facilmente as ideias de classificação rápida e os métodos de escrita deste código simples.
Copie o código do código da seguinte forma:
function quick_sort(lista, início, fim) {
if (início <fim) {
var pivotpos = partição(lista, início, fim); //Encontrar a base da classificação rápida
quick_sort(list, start, pivotpos - 1); //Classifica rapidamente o esquerdo
quick_sort(list, pivotpos + 1, end); //Classifica rapidamente o correto
}
}
//Ajusta uma sequência em duas áreas divididas pelo número base, um lado não é menor que o número base e o outro lado não é maior que o número base
function partição(lista, início, fim) {
var pivôpos = início;
var pivô = lista[início];
var tmp;
for(var i = início + 1; i <= fim; i ++) {
if (lista[i] < pivô) {
tmp = lista[i];
pivôpos += 1;
lista[i] = lista[pivotpos];
lista[pivotpos] = tmp;
}
}
tmp = lista[início];
lista[início] = lista[pivotpos];
lista[pivotpos] = tmp;
retornar pivôs;
}
lista var = [8,2,4,65,2,4,7,1,9,0,2,34,12];
quick_sort(lista, 0, lista.comprimento);