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

3 respostas
F

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.

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;
        }
    }
}

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

Att,
Fernando Nery

3 Respostas

F

Ninguém pode ajudar? =/

E

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.

F

entanglement:

porém é pedido nesse trabalho que mostre ao usuário quantas vezes os dados foram comparadas e quantas vezes trocaram de lugar.

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.

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

Criado 13 de novembro de 2009
Ultima resposta 16 de nov. de 2009
Respostas 3
Participantes 2