请编写一个程序查找杨氏矩阵中的某个数是否存在
要求:时间复杂度小于0(N).
这道题出自《剑指offer》--二维数组的查找
本人大一,随便写写。
#include<stdio.h>
int find_number(int arr[3][3],int k,int*px,int*py)
{
int x=*px-1;
int y=0;
while(y<=*py-1&&x>=0)
{
if(arr[x][y]>k)
{ x--;
}
else if(arr[x][y]<k)
{ y++;
}
else{ *px=x;
*py=y;
return 1; //找到了//
}
}
return 0; //没找到//
}
int main()
{
int arr[3][3]={{1,2,5},{3,4,8},{6,7,10}};
int num=6; //要查找的数//
int row=3;
int col=3;
//返回形参数//
//传地址过去来改变下标//
int t=find_number(arr,num,&row,&col);
if(t==1)
{ printf("找到了\n");
printf("其下标是:%d,%d",row,col);
}
else
{ printf("没找到");
}