public static int pesquisaSequencial(String chave, List <Candidato> candidatosOrdenados, TIPO tipo) { int count; for (count = 0; count < candidatosOrdenados.Count; count++) { Candidato candidato = new Candidato(chave, Convert.ToInt64(chave), Convert.ToDouble(chave)); if ((CompararCandidatos.igual(candidatosOrdenados[count], candidato, tipo))) { break; } } if (count >= candidatosOrdenados.Count) { count = 0; } return(count); }
public static int[] pesquisaInterpolacao(string chave, List <Candidato> candidatos, TIPO tipo) { int[] result = { 0, 0 }; int qtdComparacao = 0; int menor = 0; int meio = -1; int maior = candidatos.Count - 1; int indice = -1; Candidato candidato = new Candidato(chave, Convert.ToInt64(chave), Convert.ToDouble(chave)); while (menor <= maior) { qtdComparacao++; meio = encontrarMeio(chave, candidatos, tipo, menor, maior); if (CompararCandidatos.igual(candidatos[meio], candidato, tipo)) { indice = meio; break; } else { if (CompararCandidatos.menor(candidatos[meio], candidato, tipo)) { menor = meio + 1; } else { maior = meio - 1; } } } result[0] = indice; result[1] = qtdComparacao; return(result); }