A classificação rápida pode parecer muito rápido quando você ouve esse nome, mas o pior caso de sua complexidade do tempo de algoritmo é o mesmo que a classificação da inserção. A razão pela qual se torna um tipo rápido é porque sua eficiência média é mais rápida que a classificação de heap. Precisa abrir um novo espaço de armazenamento diretamente na matriz original. A idéia de classificação rápida é muito simples, que é selecionar uma palavra -chave K para dividir a matriz original em duas partes G1 e G2. Para k. O método de classificação no código é a descrição da instrução agora. O algoritmo chave é encontrar a localização de K e dividir a matriz original em duas partes. O método getPlocation é o núcleo da classificação rápida. Seu princípio de implementação é um pouco como a classificação de inserção, mas um pouco como. Sempre, o elemento na posição final no mapa é usado como palavra -chave. e j maior que o núcleo. Vá em frente. Após o loop como este, o início do final-1 é separado por tamanho.
A cópia do código é a seguinte:
classe pública Quicksort {
public int getplocation (int [] mapa, int start, int end) {
int core = map [end];
int i = start-1;
for (int j = start; j <= end-1; j ++) {
if (map [j] <= núcleo) {
i ++;
int cache = map [j];
mapa [j] = mapa [i];
mapa [i] = cache;
}
}
i ++;
mapa [end] = mapa [i];
mapa [i] = núcleo;
retornar i;
}
public void Sort (int [] mapa, int start, int end) {
if (start <end) {
int p = getPlocation (mapa, início, fim);
classificar (mapa, início, p-1);
classificar (mapa, p+1, extremidade);
}
}
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);
for (int i = 0; i <map.length; i ++) {
System.out.println (map [i]);
}
}
}