首页 > 编程 > C++ > 正文

C++二维数组中的查找算法示例

2020-01-26 14:09:59
字体:
来源:转载
供稿:网友

本文实例讲述了C++二维数组中的查找算法。分享给大家供大家参考,具体如下:

一、问题:

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

二、实现代码:

#include <iostream>#include <vector>using namespace std;bool Find(int target, vector<vector<int> > array) {  int row = array.size();   //行数    int column = array[0].size();  //列数  int i = 0, j = column - 1;  while (i < row && j >= 0)  {    if (array[i][j] == target) //从右上角第一个找起,大于target向左查找,小于target则向下查找    {      return true;    }    else if (array[i][j] > target)    {      j--;    //向左查找    }    else    {      i++;    //向下查找    }  }  return false;}int main(){  vector<int> vec1{ 3, 7, 9, 12, 19, 23 };  vector<int> vec2{ 4, 17, 19, 31, 32, 33 };  vector<vector<int> > array;  array.push_back(vec1);  array.push_back(vec2);  bool result = Find(32, array);  cout << "result = " << result << endl;  system("pause");}

希望本文所述对大家C++程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表