我最近遇到了这个问题,你必须从一个有序的二维数组中找到一个整数。但是这两个暗淡数组是按行而不是按列排序的。我已经解决了这个问题,但仍然认为可能有更好的方法。所以特地来这里和大家讨论一下。您的建议和改进将帮助我在编码方面成长。这是代码
int searchInteger = Int32.Parse(Console.ReadLine());
int cnt = 0;
for (int i = 0; i < x; i++)
{
if (intarry[i, 0] <= searchInteger && intarry[i,y-1] >= searchInteger)
{
if (intarry[i, 0] == searchInteger || intarry[i, y - 1] == searchInteger)
Console.WriteLine("string present {0} times" , ++cnt);
else
{
int[] array = new int[y];
int y1 = 0;
for (int k = 0; k < y; k++)
array[k] = intarry[i, y1++];
bool result;
if (result = binarySearch(array, searchInteger) == true)
{
Console.WriteLine("string present inside {0} times", ++ cnt);
Console.ReadLine();
}
}
}
}
其中 searchInteger 是我们必须在数组中找到的整数。并且二进制搜索是返回布尔值的方法,如果值存在于一维数组中(在该单行中)。
请帮忙,它是最佳的还是有比这更好的解决方案。
谢谢