题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
#include <iostream>
using namespace std;
bool search(int* matrix,int rows,int cols,int number) {
int row = 0,col = cols - 1;
while(matrix != NULL && col >= 0 && row <= rows - 1) {
if(matrix[row*cols + col] == number) {
return true;
}
if(matrix[row*cols + col] > number) {
col -- ;
}
else {
row ++;
}
}
return false;
}
int main(int argc, char *argv[])
{
int a[4][4] = {
{1,2,8,9},
{2,4,9,12},
{4,7,10,13},
{6,8,11,15}
};
bool b1 = search((int*)a,4,4,0);
cout<<b1<<endl;
bool b2 = search((int*)a,4,4,16);
cout<<b2<<endl;
bool b3 = search((int*)a,4,4,14);
cout<<b3<<endl;
bool b4 = search((int*)a,4,4,10);
cout<<b4<<endl;
return 0;
}