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++宏定义里#和##的使用

    浅析C++宏定义里#和##的使用

    工作中如果是c开发的话,经常会用到宏定义,而宏定义中的#和##也会时不时遇到,本文主要就来和大家分享一下这两个符号的作用,需要的可以参考一下
    2023-05-05
  • C++初阶教程之类和对象

    C++初阶教程之类和对象

    C++是面向对象编程的,这也是C++与C语言的最大区别,而类和对象就是C++面向对象的基础,下面这篇文章主要给大家介绍了关于C++初阶教程之类和对象的相关资料,需要的朋友可以参考下
    2022-02-02
  • C++多态的全面讲解

    C++多态的全面讲解

    多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数
    2022-06-06
  • c语言读取csv文件和c++读取csv文件示例分享

    c语言读取csv文件和c++读取csv文件示例分享

    这篇文章主要介绍了c语言读取csv文件和c++读取csv文件示例,需要的朋友可以参考下
    2014-03-03
  • C++实现图书馆管理系统源码

    C++实现图书馆管理系统源码

    这篇文章主要为大家详细介绍了C++实现图书馆管理系统源码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 使用C语言如何输出逆序数

    使用C语言如何输出逆序数

    逆序数的就是把一个数倒过来,例如:1234那么它的逆序数就为4321,我们该如何是实现呢?下面这篇文章主要给大家介绍了关于使用C语言如何输出逆序数的相关资料,需要的朋友可以参考下
    2022-01-01
  • C++有限状态机实现详解

    C++有限状态机实现详解

    这篇文章主要为大家详细介绍了C++有限状态机的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • C语言杨氏矩阵中查找元素的示例代码

    C语言杨氏矩阵中查找元素的示例代码

    本文主要介绍了C语言杨氏矩阵中查找元素的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • C++实现本地TCP通讯的示例代码

    C++实现本地TCP通讯的示例代码

    这篇文章主要为大家详细介绍了C++如何利用TCP技术,实现本地ROS1和ROS2的通讯,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-02-02
  • 详解C++如何高效利用CPU缓存

    详解C++如何高效利用CPU缓存

    高效利用CPU缓存是编写高性能C++代码的关键之一,所以这篇文章小编主要来和大家介绍一下C++如何实现高效利用CPU缓存,需要的可以参考一下
    2024-02-02

最新评论