您的位置:首页 > 其它

剑指off T3 杨氏矩阵搜索算法

2014-01-02 20:46 246 查看


//将二维数组当作参数的时候,必须指明所有维数大小或者省略第一维的
//但是不能省略第二维或者更高维的大小,这是由编译器原理限制的
//对于数组 int p[m]
;编译器是这样寻址的,它的地址为:p + i*n + j;
//如果我们省略了第二维或者更高维的大小,编译器将不知道如何正确的寻址。
#include<iostream>
using namespace std;
void find_the_value(int *s,int x,int y,int value)
{
if(s==NULL && x<=0 && y<=0)
return;
else
{
int row=0;
int col=y-1;
while(row<x && col>=0)
{
if(s[row*y+col]==value)
{
cout<<"存在要找的数字"<<endl;
return;
}
else if(s[row*y+col]<value)
row++;
else
col--;
}
cout<<"不存在要找的数字"<<endl;
}
}
int main()
{
int s[4][4]={{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}};
find_the_value(s[0],4,4,19);
return 0;
}
/*#include<iostream>
using namespace std;
void find_the_num(int s[][4],int x,int y,int value)
{
if(s==NULL && x<=0 && y<=0)
return;
for(int i=y-1;i>=0;i--)
{
for(int j=0;j<x;j++)
{
if(value==s[i][j])
{
cout<<"存在要找的数"<<s[i][j]<<endl;
return;
}
if(value<s[i][j])
break;
}
}
cout<<"不存在要找的数"<<endl;
}
int main()
{
int s[4][4]={{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}};
find_the_num(s,4,4,15);
return 0;
}*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: