Boa noite, pessoal!
A dúvida é o sequinte: Tenho o método de ordenação do tipo quicksort e preciso contar o número de trocas que ele faz até a ordenação completa do vetor. O código roda, mas não mostra o número de trocas (coloquei um contator: contquick ++, porém dá
resultado zero, de zero ordenação. Ah, passo no método principal o seguinte para o método do quick, através de parâmetro: or.quick_sort(vetor, ini, fim); Resumindo: o vetor é ordenado usando este método, só que não as contabiliza. Quero saber como faço para resolver.
public static void quick_sort(int[] v, int ini, int fim) {
int meio;
int contquick1=0;
int contquick2=0;
int contquick = 0;
int t = 0;
for (int i = ini; i <= fim; i++) {
meio = partition(v, ini, fim); // meio recebe partition (vetor, ini e fim)
quick_sort(v, ini, meio);
quick_sort(v, meio + 1, fim);
contquick ++;
}
for (int i = 0; i < (v.length) - 1; i++) {
System.out.println(v[i]);
}
System.out.println("Quantidade de trocas do quick: " + contquick);
}
public static int partition(int[] v, int ini, int fim) {
int pivo, topo, i;
pivo = v[ini];
topo = ini;
for (i = ini + 1; i <= fim; i++) {
if (v[i] < pivo) {
v[topo] = v[i];
v[i] = v[topo + 1];
topo++;
}
}
v[topo] = pivo;
return topo;
} // fim da quick