问答题
给定整型数组B[0,…,M][0,…,N]。已知B中数据在每一维方向上都按从小到大的次序排列,且整型变量x在B中存在。设计一个程序段,找出一对满足B[i][j]=x的i,j值,找到后输出i和j的值,要求比较次数不超过M+N。
【正确答案】实现本题功能的程序代码如下,可以验证其比较次数不超过m+n。
void findx(int x)
{
i=0;j=N;
while(B[i][j]!=x)
if(B[i][j]<x)
++i;
else
--j;
cout<<i<<","<<j<<endl;
}
【答案解析】