
pacman
(usa Ubuntu)
Enviado em 27/09/2006 - 14:12h
pense assim, vc tem 3 numeros
A, B e C
como saber se eles estão repetidos?
vc tem que comparar A com B, A com C e B com C.
A -> B
A -> C
B -> C
sacou? vc elege um elemento e compara com os próximos.
Agora e se fossem N valores, em uma matriz?
for(i=0;i<(N-1);i++){
for(j=i+1;j<N;j++){
if(V[i] == V[j]) {
// faz alguma coisa
}
}
}
Uma matriz com muitas dimensões pode ser tratado como se tivesse uma dimensão só com o devido cuidado.
O que fazer se encontrar 2 elementos iguais? É um bom momento para parar e pensar, fazer uns rabiscos, etc.
Outra forma seria criar uma lista encadeada com uma estrutura contendo o valor, a quantidade de vezes que aparece e um ponteiro para o proximo elemento. Vou jogando os elementos do meu vetor nessa lista, sempre comparando o mesmo com toda a lista. Se vc ordena a lista de forma crescente ou decrescente, acho que a comparação pode ser feita de forma mais rapida, não sei. É questão de estratégia.