Contagem de troca de dados! [Algoritmos de ordenação]

Bom pessoal, tenho um probleminha e queria saber se vocês podem me ajudar!
Estou com um trabalho na faculdade onde tenho que implementar 3 algoritmos de Ordenação de Dados, QuickSort, ShellSort e outro a minha escolha.
Consegui fazer a implementação de 6 algoritmos, porém é pedido nesse trabalho que mostre ao usuário quantas vezes os dados foram comparadas e quantas vezes trocaram de lugar.
Imagino que devo pegar o número de vezes que a variável “i” foi trocada no laço for, mas não sei como fazer isso.

Abaixo segue o algoritmo usei para o ShellSort.
Eu dei uma procurada aqui no fórum e até mesmo em outros lugares e não achei nada a respeito.

[code]
public class ShellSort {

public static void shellSort(int[] nums) {
int n = nums.length;
int h = 1;
int aux, j;
    while (h < n) {
    	for (int i = h; i < n; i++) {
        	aux = nums[i];
        	j = i;
        	while (j >= h && nums[j - h] > aux) {
            	nums[j] = nums[j - h];
            	j = j - h;
            }
        	nums[j] = aux;
        }
        h = 3 * h + 1;
    }
}

}[/code]

Desde já agradeço pela atenção! :smiley:

Att,
Fernando Nery

Ninguém pode ajudar? =/

Crie 2 métodos - um que faz a comparação e outro que faz a troca de lugar.

Esses métodos, como efeito colateral, contam quantas vezes foram chamados.

[quote=entanglement][quote]
porém é pedido nesse trabalho que mostre ao usuário quantas vezes os dados foram comparadas e quantas vezes trocaram de lugar.
[/quote]

Crie 2 métodos - um que faz a comparação e outro que faz a troca de lugar.

Esses métodos, como efeito colateral, contam quantas vezes foram chamados.
[/quote]

O problema é que não sei como criar esses métodos.
Um count ou algo do tipo!