alguien puede darme un algoritmo en java para quicksort?

javi
19 de Enero del 2006
hola a todos, estoy realizando un trabajo y necesito un algoritmo para hacer una ordenacion mediante quicksort pero tomando como pivote el primer elemento del array. El metodo quicksort que tengo tomando como pivote la mediana de tres elementos es el siguiente:
public static void quickSort(Object a[], int izq, int der )
{
if( izq<der )
{
Comparable pivot=mediana3(a,izq,der);
int i=izq;

int j=der-1;
for( ; i<j; )
{ while(pivot.compareTo(a[++i])>0);
while(pivot.compareTo(a[--j])<0);
intercambiar (a,i,j);
}
intercambiar (a,i,j); // Deshacer el ultimo cambio
intercambiar (a,i,der-1); // Restaurar el pivote
quickSort(a,izq,i-1); // Ordenar recursivamente los elementos menores
quickSort(a,i+1,der); // Ordenar recursivamente los elementos mayores
}
}
pero no se como modificarlo para que el pivote sea a[izq] ya que si simplemente cambio la linea Comparable pivot = (Comparable) a[izq] me salgo del array y me da una excepcion.
Aver si alguien puede darme la solucion.
Gracias.