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!
Att,
Fernando Nery