在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
例如数组
1 3 5
3 5 7
5 7 9
我们要在这样的数组中找一个数,先找到最初的位置,这个位置可以找左下角或者右上角,从左下角开始,先判断它的正上方和正右方,再根据这个特殊矩阵的特点,我们最多只需要判断四次。从右上方开始也是一样的。
函数的代码如下;
void find(int a[][3], int n){
int i; int j;
while (j >= 0 && i < n){
if (a[i][j]>find){
j–;
}
else if (a[i][j]<find){
i++;
}
else if (a[i][j] = find){
return 1; //找到了返回1
}
else{
return 0; //全部找完没找到,返回0
}
}
}