在一个二维数组中,每一行都按从左到右递增的顺序排序,每一列都按从上到下递增的顺序排序。请完成一个函数,输入一个二维数组和一个整数,判断这个整数是否存在
#include <iostream>
using namespace std;
bool Find(int matrix[][4],int rows,int columns,int number)
{
if(matrix!= NULL && rows>0 && columns>0)
{
int i = 0;
int j=columns-1;
while(i < rows && j>=0)
{
if(matrix[i][j]==number)
{
//printf("i=%d,j=%d\n",i,j);
return true;
break;
}
else if(matrix[i][j]<number)
{
i++;
}
else
j--;
}
}
return false;
}
void Test()
{
int FindNum = 2;
int arr[][4] = { 1, 2, 8, 9,
2, 4, 9, 12,
4, 7, 10, 13,
6, 8, 11, 15 };
bool ret = Find(arr, 4, 4, FindNum);
if (ret == true)
cout << "find " << FindNum << endl;
else
cout << "not find " << FindNum << endl;
}
int main()
{
Test();
return 0;
}