Ordenação com BubbleSort

pessoal, tenho o seguinte exercício pra resolver:

Faça um teste de execução do método de ordenação bolha para: V={30, 40, 50, 20, 10}
Quantas operações críticas (comparações + trocas) foram necessárias?
Quantas varreduras são necessárias para detectar que o vetor está classificado?
Informe a complexidade do algoritmo BubbleSort nos casos: melhor, pior e caso médio

para isso criei o seguinte código, com as funções bubblesort e troca que a prof. da facul nos forneceu, mas tá dando erro e não to sabendo o que é, se tiver como alguém me explicar o que tá dando problema… segue o código:

[code]public class Exercicio1 {

public static void main (String [] args){
    int v [] = new int [] {30, 40, 50, 20, 10};
    bubbleSort(v);
}

public static void bubbleSort  (int[] v) {
int cont = 0, var = 0; //cont para contar as comparações e var para contar as varreduras
    for (int  i = 0; i < v.length - 1; i++){
        for (int j = 0; i < v.length - (1 - i); j++){
            if (v[j] > v[j+1]){
                troca(v, j, j+1);
                cont ++;
            }
            cont ++;
            var ++;
        }
    }
    System.out.println("Operações críticas: " + cont);
    System.out.println("Varreduras: " + var);
}

public static void troca (int [] v, int i, int j) {
int  temp = v[i];
v[i] = v[j];
v[j] = temp;
}

}

[/code]

Pelo que to vendo…
na linha

if (v[j] > v[j+1])

O seu array tem 5 posições…
quando o j = 5, vc está tentando comparar com a posicao 6 do array [j+1]

v.length = 5;

Para int i = 4;
int auxiliar = v.length - (1 - i);
int j < v[auxiliar]; // erro

auxiliar = 5 - (1 - 4) = 5 - (-3), na multiplicação - com - é +, logo: 5 - (-3) = 8;

Só te digo isto, e espero ter ajudado.