Olá pessoal do msdn,
Estou com um probleminha, meu código não tem nenhum erro apontado pelo Visual C#, mas na hora do debug (F5), o programa de console aparece mas "some" logo depois. Além disso, ele falha na busca de um item, por exemplo, eu estou com um array de números primos e peço o nº 73 para o meu método e na classe que contém o Main(string[] args){}, peço para o Console escrever o índice do array 'primos' em que está localizado o item/nº 73.
Seguem as classes Search e Program, respectivamente.
class BinarySearch { public decimal binarySearch(decimal[] matriz, int valorAlvo) { decimal max = matriz.Length - 1; decimal min = 0; int palpite = (int)Math.Floor((max + min) / 2); while (max >= min) { if (matriz[palpite] < valorAlvo) { min = palpite + 1; } if (matriz[palpite] > valorAlvo) { max = palpite - 1; } else { return palpite; } Console.WriteLine(palpite); } /*Caso o algoritmo (binarySearch) não encontre valor correspondente (valorAlvo) *no array primos ou se max < min, o que não procede.*/ return -1; } }
class Program { static void Main(string[] args) { BinarySearch bs = new BinarySearch(); decimal[] primos = new decimal[] { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 61, 67, 71, 73, 79, 83, 89, 97 }; decimal resultado = bs.binarySearch(primos, 73); Console.WriteLine("O número primo foi encotrado no índice " + resultado + "."); }
Agradeço desde já a quem puder me auxiliar