博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二维数组中的查找
阅读量:7283 次
发布时间:2019-06-30

本文共 1137 字,大约阅读时间需要 3 分钟。

题目

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

 

问题分析

  

 应当从具体问题入手,通过分析简单具体的例子,发现普遍的规律。

  现在假定,我们要从二维数组

  1  7  14  21

  3  8  15  22

  5  9  16  23

  7  17 23 24

  中检索是否存在数字7。

  按照从右上方,列优先的顺序检索该数组。

  1. 在检索17的时候,因为21大于17,故可剔除第四列。

  2. 在检索14的时候,因为14小于17,故可剔除第一行,相当于更新行号和列号后重新执行而已。则剩下

             3  8  15  

             5  9  16  

             7  17 23

     3. 在检索15的时候,因为15小于17,故可剔除第一行,只剩下

               5  9  16  

             7  17 23

     4. 在检索16的时候,因为16小于17,故可剔除第一行,只剩下

               7  17 23

  5. 在检索到23的时候,因为23大于17,故可剔除第三列,只剩下

                 7   17

     6. 检索到17,返回。

 

代码实现如下:

#include 
#define M 4#define N 4int FindNumber(int array[M][N],int rows,int columns,int number){ if(array!=NULL && rows>0 && columns>0) { int col=columns-1,row=0; while(col>=0 && row
number) { col--; continue; } else if(array[row][col]

结果如下:

$ ./MyFindNumberInTwoArrays.exe

要测试的数组为:
1 7 14 21
3 8 15 22
5 9 16 23
7 17 23 24
请输入要查找的数:17
该数存在
请输入要查找的数:23
该数存在
请输入要查找的数:22
该数存在
请输入要查找的数:10
该数不存在
请输入要查找的数:6
该数不存在
请输入要查找的数:

 

 

转载于:https://www.cnblogs.com/longzhongren/p/4338946.html

你可能感兴趣的文章
python day04
查看>>
JVM的内存区域划分
查看>>
MySQL基础
查看>>
1595:Symmetry
查看>>
你应该知道的大数据领域12大动向
查看>>
R-CNN for Small Object Detection
查看>>
IF函数多个条件判断及嵌套
查看>>
代码搬移
查看>>
ajax请求code:200但是进入error函数
查看>>
软件图标显示不正常的问题
查看>>
Golang websocket
查看>>
关于编码:Unicode/UTF-8/UTF-16/UTF-32
查看>>
C++ OpenSSL 之三:生成CSR文件
查看>>
amaze ui响应式辅助
查看>>
C++getline使用
查看>>
Spinner使用二
查看>>
android 隐藏输入法键盘
查看>>
Android jni 中打印logcat日志
查看>>
SSL和keystore生成、导入等配置
查看>>
The Eagles Hotel California Lyrics
查看>>