Olá, amigos!
Há algum tempo venho tentando desenvolver um algoritmo para solucionar
um problema com vetores ('arrays'): ENCONTRAR ELEMENTOS REPETIDOS NUM
MESMO VETOR. A tarefa não é tão simples assim... e envolve as questões
de velocidade de processamento e de pesquisa.
Embora trabalhe com diversas linguagens, não encontrei nelas nenhuma rotina
que resolvesse isso. Talvez não seja mesmo necessário ter uma rotina para
esse fim, mas o fato é que o problema existe...
É verdade que fiz um algoritmo um tanto quanto funcional, porém lento
para vetores grandes, mas se alguém tiver interesse pelo problema, aguardo
a solução, enquanto deixo o algoritmo (em pseudocódigo), que pode ser
mapeado para qualquer linguagem de programação, para se ter uma idéia do
problema.
-----------------------------------------------------
função enc_elem_rep_vetor(v)
declare e,i,j,k,s
e = FALSO
k = 1
para i = 1 até comprimento(v) faça
s = v[i] {Salva elemento atual}
se (k = comprimento(v)) então
saia
fim se
k = k + 1
para j = k até comprimento(v) faça
se (v[j] = s) então
e = VERDADEIRO
saia
fim se
próximo j
se (e) então
saia
fim se
próximo i
retorne (e)
-----------------------------------------------------
Para testá-lo, basta:
-----------------------------------------------------
início
declare i,v[100]
para i = 1 até 100 faça
v[i] = inteiro(aleatório() * 100 + 1)
próximo i
se (enc_elem_rep_vetor(v)) então
escreva "Há elementos repetidos."
senão
escreva "Não há elementos repetidos."
fim se
fim
-----------------------------------------------------
Joseph
Técnico em Informática/Programador
São Paulo/SP