package br.com.alura.notas;
public class TestaOrdenacaoRapida { // QuickSort
public static void main(String[] args) {
    String[] nomes = { "Maria", "Camila", "Fernando", "Jonas", "Andressa", "Paloma", "Alberto", "Junior", "Enzo",
            "Paulo" };
    ordena(nomes, 0, nomes.length);
    for (int atual = 0; atual < nomes.length; atual++) {
        System.out.println(nomes[atual]);
    }
}
private static void ordena(String[] string, int de, int ate) {
    int elementos = ate - de;
    if (elementos > 1) {
        int posicaoDoPivo = particiona(string, de, ate);
        ordena(string, ate, posicaoDoPivo);
        ordena(string, posicaoDoPivo + 1, ate);
    }
}
private static int particiona(String[] nomes, int de, int ate) {
    String pivo = nomes[ate - 1];
    int menores = 0;
    for (int analise = 0; analise < ate - 1; analise++) {
        String atual = nomes[analise];
        if (atual.compareTo(pivo) < 0) {
            troca(nomes, analise, menores);
            menores++;
        }
    }
    troca(nomes, ate - 1, menores);
    return menores;
}
private static void troca(String[] string, int de, int para) {
    String string1 = string[de];
    String string2 = string[para];
    string[de] = string2;
    string[para] = string1;
}}
 
            