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

 更新时间:2017年05月08日 12:03:29   作者:难免有错_  
这篇文章主要介绍了C++二维数组中的查找算法,结合实例形式分析了C++二维数组进行查找的原理与具体实现技巧,需要的朋友可以参考下

本文实例讲述了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++程序设计有所帮助。

相关文章

  • c 调用python出现异常的原因分析

    c 调用python出现异常的原因分析

    本篇文章是对使用c语言调用python出现异常的原因进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • Opencv实现图像灰度线性变换

    Opencv实现图像灰度线性变换

    这篇文章主要为大家详细介绍了Opencv实现图像灰度线性变换,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • 解析static在C和C++中的用法以及区别

    解析static在C和C++中的用法以及区别

    以下是对static在C和C++中的用法以及区别进行了详细的分析介绍。需要的朋友可以过来参考下
    2013-08-08
  • c++编译使用log4cplus的详细步骤

    c++编译使用log4cplus的详细步骤

    C++很强大,但是仍然有很多不尽如人意的地方,比如打印日志方面就没有java的log4j那种信手拈来,自然而然地东西,今天我们说一说一个很强大地日志库log4cplus在c++项目中地使用,感兴趣的朋友一起看看吧
    2023-10-10
  • 一文详解Qt如何优雅的进行界面布局

    一文详解Qt如何优雅的进行界面布局

    使⽤ Qt 在界⾯上创建的控件, 都是通过 “绝对定位” 的⽅式来设定的,这种设定⽅式其实并不⽅便,尤其是界⾯如果内容⽐较多, 不好计算,所以Qt 引⼊ 布局管理器 (Layout) 机制, 来解决上述问题,需要的朋友可以参考下
    2024-05-05
  • 实战开发为单片机的按键加一个锁防止多次触发的细节

    实战开发为单片机的按键加一个锁防止多次触发的细节

    今天小编就为大家分享一篇关于实战开发为单片机的按键加一个锁防止多次触发的细节,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • 关于C++友元函数的实现讲解

    关于C++友元函数的实现讲解

    今天小编就为大家分享一篇关于关于C++友元函数的实现讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • C++迭代器介绍(iterator、const_iterator、reverse_interator、const_reverse_interator)

    C++迭代器介绍(iterator、const_iterator、reverse_interator、const_rev

    这篇文章主要介绍了C++迭代器介绍(iterator、const_iterator、reverse_interator、const_reverse_interator),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 深入了解c++11 移动语义与右值引用

    深入了解c++11 移动语义与右值引用

    这篇文章主要介绍了c++ 移动语义与右值引用的相关资料,帮助大家更好的理解和学习c++,感兴趣的朋友可以了解下
    2020-08-08
  • 详解C++之函数重载

    详解C++之函数重载

    这篇文章主要介绍了c++函数重载的相关知识,文章讲解的非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06

最新评论