在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列按照从上到下递增的顺序排序。完成一个函数,输入有这样一个二维数组和一个整数,判断数组中是否有该整数。
int BinSearch(int *arr,int len,int key)
{
int low=0;
int high=len-1;
int mid;
while(low<=high)
{
mid=(low+high)/2;
if(arr[mid]==key)
{
return mid;
}
else if(arr[mid]<key)
{
low=mid+1;
}
else if(arr[mid]>key)
{
high=mid-1;
}
}
return mid;
}
bool Search1(int (*arr)[4],int key)
{
int row=4;
int col=4;
int j;
for(int i=0;i<row;i++)
{
j=BinSearch(arr[i],col,key);
if(arr[i][j]==key)
{
return true;
}
else
{
col=j+1;
}
}
return false;
}