程序书海码农的世界程序员

行列递增矩阵的查找

2018-04-25  本文已影响22人  逍遥_9353

/*

行列递增矩阵的查找

    在一个m行n列的二维数组中,每一行都按照从左到右递增的顺序数列,

每一行都按照从上到下递增的顺序排列。现输入这样的一个二维数组

和一个整数,请完成一个函数,判断数组中是否含有该整数。例如,

给定如图所示的二维数组,它的每一行每一列都递增排序。如果在这

个数组中查找数6,则返回true;如果查找数5,则由于该数组不含有

数5,则返回false。

*/

/*

思路:

    首先将其定义为矩阵中最右上角的元素,如果这个元素比要找的数大

就往左走,要是比要找的数小就往下走,直到找到要找的数位置

*/

#include<iostream>

#define row 5

#define col 5

using namespace std;

bool yongmatrix(int array[row][col],int searchkey)

{

int i=0,j=col-1;

int var=array[i][j];

while(true)

{

if(var==searchkey)

        return  true;

else if(var<searchkey&&i<row-1)

    var=array[i++][j];

else if(var>searchkey&&j>0)

    var=array[i][j--];

else

    return false;

}

}

int main()

{

int  array[row][col],i,j,reachkey;

cin>>reachkey;

for(i=0;i<row;i++)

  for(j=0;j<col;j++)

      cin>>array[i][j];

    cout<<yongmatrix(array,reachkey)<<endl;

    return 0;

上一篇下一篇

猜你喜欢

热点阅读