QuickSort Com Strings

Galera alguem tem um exemplo de QuickSort sendo com Strings eu procurei na net mais não achei nenhum, so axei com inteiros mas quando eu transformo para String fica com muitos erro e não funciona, Alguem Sabe um site que tenho um exemplo parecido ou que ensine como faz.
Axei esse Exemplo com inteiros mas não consegui modificar para String quem souber e querer me ajudar, ou souber um site:
Olha o codigo:

import javax.swing.JOptionPane; 
import javax.swing.JTextArea; 

public class Quick 
{
 private static void ordena(int a[], int p, int u) 
     { 
       int i = p, f = u;                        // Extremos 
       int x = (int) (Math.random()*(u-p+1))+p; // Aleatório 
       int pivô = a[x];                         // para evitar quadrático 
       
       while (i <= f)  // Enquanto não se cruzarem 
       {                        
         
         while (i < u && a[i] < pivô) i++;      // Organiza primeira metade 
         
         while (f > p && a[f] > pivô) f--;      // Organiza segunda metade 
         
         if (i <= f) {                          // Se ainda não acabou 
           x = a[f];                            // troca os elementos 
           a[f--] = a[i];                       // dos dois lados 
           a[i++] = x;                          // da lista 
         } 
       } 
       
       if (p < f) ordena(a,p,f);                // a[p]..a[f] < pivô 
       if (i < u) ordena(a,i,u);                // a[i]..a[u] > pivô 
       
       
     } 
     
     public static void main(String args[]) 
     { 
        String saida=""; 
        JTextArea texto = new JTextArea(10,10); 
        int vet[] = new int [10]; 
        int i; 
        
        for(i=0;i<vet.length;i++) 
        { 
           vet[i]=Integer.parseInt(JOptionPane.showInputDialog(null,"Dígite o "+(i+1)+"° número","ATENÇÂO",JOptionPane.WARNING_MESSAGE)); 
           
        } 
        
        ordena(vet,0,vet.length-1); 
        
        //******************** 
        for (i=0;i<vet.length;i++) 
            { 
              saida+=vet[i]+"\n"; 
               
            } 
        
        texto.setText(saida); 
        
        JOptionPane.showMessageDialog(null,texto,"ORDENAÇÂO COM QUICK SORT",JOptionPane.WARNING_MESSAGE); 
        
     }

Valeu Galera!!!

a unica coisa q vc tem q trocar é o modo de fazer as comparacoes, o resto é igual

da uma olhada nesse exemplo da wikipedia

Olá,
Como posso definir um pivô para orednar um array de strings com o quicksort?

edit: acabei de me dar conta de como se faz, não tinha visto a linha int pivo=a[x];

Obrigado,
Oscar