Vídeo: Quicksort simples e sem complicações - Canal do Código 2024
Uma das técnicas de classificação mais utilizadas em Java é chamada de técnica Quicksort. É uma ótima maneira de lidar com a recursão. O código real que dirige uma rotina Quicksort é surpreendentemente simples:
public static void sort (int low, int high) {if (low> = high) return; int p = partição (baixa, alta); classificar (baixo, p); classificar (p + 1, alto);}
Este método classifica a parte de uma matriz indicada pelos valores de índice baixo e alto que passou para ela. Ignorando a instrução if por enquanto, o método de classificação funciona chamando um método de partição. Este método reorganiza a matriz em duas partições para que todos os valores na partição esquerda sejam menores do que todos os valores na partição direita.
O método de partição retorna o índice do final da partição esquerda. Em seguida, o método de classificação se chama duas vezes: uma vez para classificar a partição esquerda e novamente para classificar a partição certa.
Para começar o método de classificação iniciado, você o chama com 0 como valor baixo e o comprimento da matriz e 1 como valor alto. Assim, o método de ordenação começa ordenando toda a matriz. Cada vez que o método de ordenação é executado, ele se chama duas vezes para classificar partições menores da matriz.
A instrução if no início do método de classificação compara o valor baixo com o valor alto. Se o valor baixo for igual ou superior ao valor alto, a partição possui apenas um elemento (ou talvez nenhum elemento) e, portanto, já está classificado. Nesse caso, o método de classificação simplesmente retorna sem se chamar novamente. Essa é a condição que acaba com a recursão.