问答题 给定整型数组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; }
【答案解析】