行列递增矩阵的查找

作者: 逍遥_9353 | 来源:发表于2018-04-25 23:44 被阅读22次

    /*

    行列递增矩阵的查找

        在一个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;

    相关文章

      网友评论

        本文标题:行列递增矩阵的查找

        本文链接:https://www.haomeiwen.com/subject/nwvulftx.html