1
ソートされた配列を検索すると、配列に同じ値が複数存在する場合でも値のいずれかが表示されます。私はそこに重複がいくつあるのか教えたくないので、私が探している配列に重複した値をすべて表示したい。または、これを行うために使用する必要がある別の検索がありますか?C#バイナリ検索で配列内の重複する値をすべて表示する
私が配列1 {1,2,3,4,4,5,5,5,5,6}を持っていると私は5を検索した場合ので、私は出力にそれをしたい:
5
5
5
5
これは、バイナリ検索で私のコードです。
public class search
{
public static void Main(string[] args)
{
//Arrays are created here. e.g. array1{1,2,3,4,4,5,5,5,5,6}
int Input;
Console.WriteLine("Enter the number you would like to search for.");
Input = Convert.ToInt32(Console.ReadLine());
int y = BinarySearch(array1, Input);
Console.WriteLine("array1 {0} : array2{1} : array3 {2} : array4 {3} : array5 {4}",array1[y], array2[y], array3[y], array4[y], array5[y]);
}
public static int BinarySearch(double[] Array, int Search)
{
int x = Array.Length;
int low = 0;
int high = x - 1;
while (low <= high)
{
while (low <= high)
{
int mid = (low + high)/2;
if (Search < Array[mid])
{
high = mid - 1;
}
else if (Search > Array[mid])
{
low = mid + 1;
}
else if (Search == Array[mid])
{
Console.WriteLine("{0}", Search);
return mid;
}
}
Console.WriteLine("{0} was not found.", Search);
}
return high;
}
}
あなたは 'return'文を持っている。ここ
はコードですが、私は強く、まさにそれをコピーして、多分しばらくループにこれを書き換えるしようとすることができない助言します最初の試合で –