您的位置:首页 > 其它

算法题目---二维数据中的查找

2017-06-29 10:53 253 查看
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。

请完成一个函数,输入这样的一个二维数据和一个整数,判断数组中是否含有该整数。

bool Find(int *matrix,int rows,int cols, int num)

{

    bool found = false;

    

    if(matrix != NULL && rows > 0 && cols > 0 )

    {

        int row = 0;

        int col = cols - 1;

        

        while(row < rows && col >= 0)

        {

            if(matrix[row * cols + col] == num)

            {

                found = true;

                break;

            }

            else if(matrix[row * cols + col] > num)

                -- col;

            else

                ++ row;

        }

    }

    return found;

}

void test()

{    

    int data[] = {1,2,8,9,2,4,9,12,4,7,10,13,6,8,11,15};

    //bool ret = Find(data,4,4,7);

    bool ret = Find(data,4,4,22);

    

    cout<<"ret="<< ret <<endl;

}

int main()

{

    test();

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐