首页 > 学院 > 开发设计 > 正文

二维数组中的查找

2019-11-08 03:23:59
字体:
来源:转载
供稿:网友

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

二分查找,复杂度nlogn

bool Find(vector<vector<int>> array1, int target)

{    int rowCount,colCount;    int mid=0;    rowCount = array1.size();    colCount = array1[0].size();    for(int i=0 ; i<rowCount ; i++)        {        int low = 0;        int high = colCount - 1;//        int mid;        while(low <= high)            {            mid = (low + high)/2;            if(target == array1[i][mid])                return true;            else if(target < array1[i][mid])                {                high = mid -1;                }            else if(target > array1[i][mid])                {                low = mid+1;                }            }        }        return false;//必须放在最外层,否则可能造成没有输出(编译通不过)}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表