#include<iostream>
using namespace std;
//从右上角不断地缩小查找范围的思想
bool Find(int * matrix,int rows,int columns,int number){
bool found=false;
if(matrix!=NULL&&rows>0&&columns>0){
int row=0;
int column=columns-1;
while(row<rows&&column>=0){
if(matrix[row*columns+column]==number) {
cout<<"row:"<<row<<"column:"<<column<<endl;
found=true;
break;
}
else if(matrix[row*columns+column]>number)
column--;
else row++;
}
}
return found;
}
void main(){
int matrix[][4]={1,2,8,9,2,4,9,12,4,7,10,13,6,8,11,15};
bool flag=Find((int *)matrix,4,4,1);
cout<<"查找最小值的结果:"<<flag<<endl;
flag=Find((int *)matrix,4,4,15);
cout<<"查找最大值的结果:"<<flag<<endl;
flag=Find((int *)matrix,4,4,7);
cout<<"查找介于最值之间存在的数据的结果:"<<flag<<endl;
flag=Find((int *)matrix,4,4,5);
cout<<"查找介于最值之间不存在的数据的结果:"<<flag<<endl;
flag=Find(NULL,0,0,16);
cout<<"给于NULL特殊的的值"<<flag<<endl;
}
FindInPartiallySortedMatrix
最新推荐文章于 2021-10-10 09:50:11 发布