Buenas:
Varios fallos en el método quicksor. Te pongo tu código y al lado el comentario.
public void quicksor (int vec[],int izq, int der) {
i=izq; // No declaras tipo de i
j=der; // No declaras tipo de j
int medio=vec[(izq+der)/2];
do{
while(vec[i]>medio); // Sobra el ';'
{
i=i+1;
}
while(vec[j]<medio); // Sobra el ';'
{
j=j-1;
}
if(i<=j) {
aux=vec[i]; // No declaras tipo de aux
vec[i]=vec[j];
vec[j]=aux;
}
} while(i<j); // OJO: Esta esta bien, aqui no sobra el ';'
if(izq<j) {
quicksort(vec,izq,j); // Realmente esta intentando crear un objeto de la clase quicksort. El metodo es quicksor (sin la t al final).
}
if(i<der) {
quicksort(vec,i,der); // Realmente esta intentando crear un objeto de la clase quicksort. El metodo es quicksor (sin la t al final).
}
}
Además, la llamada inicial desde el main() a quicksor la haces sin parámetros. O bien los pones, o bien te creas una versión del método que se encarge de calcularlos. Sería algo así:
public void quicksor () {
quicksor (this.vec, 0, this.tam - 1);
}
Además, en la declaración de vec lo defines como array de floats, pero en el método quicksor lo usas como array de int. Cambia uno de los dos.
Todas estas correcciones (salvo los ; de los while) te las detecta automáticamente un IDE tipo eclipse. Prueba a cambiar de IDE
Otro detalle. Los indices en java van de 0 a n-1, por lo que al acceder a las posiciones del array tienes que tenerlo en cuenta. Esto te afecta a cuando lo llenas y lo pintas. Estos métodos quedarían asi:
for (int i = 0; i <= tam-1; i++) {
do{
System.
out.
print( "ingrese un numero: "); texto = lee.readLine();
} while (texto.length()==0);
}
}
public void imprimir() {
for (int i = 0; i <= tam-1; i++) {
System.
out.
print (vec
[i
] + " "); }
}
Además, hay algún error en el código por que se me queda enbuclado. Voy a echarle un vistazo, a ver si lo veo.
EDITADO: Ya he visto el fallo en el método de ordenación. Al intercambiar los elementos no actualizas las índices. El método quicksor quedaría así:
// ...
if(i<=j) {
int aux = vec[i]; // No declaras tipo de aux
vec[i] = vec[j];
vec[j] = aux;
i++;
j--;
}
//...
Saludos!!