题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
程序:
#include<stdio.h>
//offer1二维数组中的查找
bool Find(int array[4][4],int row,int colu,int num)
{
int i=0;
int j=colu-1;
if(array==NULL||row<0||colu<0)
{
return false;
}
while(i<row&&j>=0){
if(array[i][j]>num)
j--;
else if(array[i][j]<num)
i++;
else
return true;
}
return false;
}
int main()
{
int array[4][4]={
{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,16}
};
int i=Find(array,4,4,20);
printf("%d\n",i);
return 0;
}
运行结果: