博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《剑指offer》第四题(二维数组中的查找)
阅读量:5278 次
发布时间:2019-06-14

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

// 二维数组中的查找// 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按// 照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个// 整数,判断数组中是否含有该整数。#include 
using namespace std;bool serach_in(int* matrix, int rows, int cols, int number){ bool flag = false; if ((matrix != NULL) && (rows > 0) && (cols > 0))//判断不能忘 { int row = 0, col = cols - 1; while ((row < rows) && (col >= 0)) { if (matrix[row*cols + col] == number) { flag = true; break; } else if (matrix[row*cols + col] > number)//用实例分析过程,思想比程序更重要 col--; else row++; } } return flag;}void test1()//要查找的数在数组中{ cout << "Test1:\n"; int matrix[][4] = { {
1, 2, 8, 9}, {
2, 4, 9, 12}, {
4, 7, 10, 13}, {
6, 8, 11, 15} }; bool result; result = serach_in(matrix[0], 4, 4, 7); if (result) cout << "Yes!\n"; else cout << "No!\n";}void test2()//要查找的数不在数组中{ cout << "Test2:\n"; int matrix[][4] = { {
1, 2, 8, 9}, {
2, 4, 9, 12}, {
4, 7, 10, 13}, {
6, 8, 11, 15} }; bool result; result = serach_in(matrix[0], 4, 4, 14); if (result) cout << "Yes!\n"; else cout << "No!\n";}void test3()//要查找的数是数组中最小的数字{ cout << "Test3:\n"; int matrix[][4] = { {
1, 2, 8, 9}, {
2, 4, 9, 12}, {
4, 7, 10, 13}, {
6, 8, 11, 15} }; bool result; result = serach_in(matrix[0], 4, 4, 1); if (result) cout << "Yes!\n"; else cout << "No!\n";}void test4()//要查找的数是数组中最大的数字{ cout << "Test4:\n"; int matrix[][4] = { {
1, 2, 8, 9}, {
2, 4, 9, 12}, {
4, 7, 10, 13}, {
6, 8, 11, 15} }; bool result; result = serach_in(matrix[0], 4, 4, 15); if (result) cout << "Yes!\n"; else cout << "No!\n";}void test5()//要查找的数比数组中最小的数字还小{ cout << "Test5:\n"; int matrix[][4] = { {
1, 2, 8, 9}, {
2, 4, 9, 12}, {
4, 7, 10, 13}, {
6, 8, 11, 15} }; bool result; result = serach_in(matrix[0], 4, 4, 0); if (result) cout << "Yes!\n"; else cout << "No!\n";}void test6()//要查找的数比数组中最大的数字还大{ cout << "Test6:\n"; int matrix[][4] = { {
1, 2, 8, 9}, {
2, 4, 9, 12}, {
4, 7, 10, 13}, {
6, 8, 11, 15} }; bool result; result = serach_in(matrix[0], 4, 4, 16); if (result) cout << "Yes!\n"; else cout << "No!\n";}void test7()//鲁棒性测试,输入空指针{ cout << "Test6:\n"; bool result; result = serach_in(NULL, 0, 0, 1); if (result) cout << "Yes!\n"; else cout << "No!\n";}int main(){ test1(); test2(); test3(); test4(); test5(); test6(); test7();//重点,鲁棒性测试 system("pause");}

 

转载于:https://www.cnblogs.com/CJT-blog/p/10458767.html

你可能感兴趣的文章
Http GetPost网络请求
查看>>
SWIFT国际资金清算系统
查看>>
Sping注解:注解和含义
查看>>
站立会议第四天
查看>>
如何快速掌握一门技术
查看>>
利用AMPScript获取Uber用户数据的访问权限
查看>>
vagrant 同时设置多个同步目录
查看>>
python接口自动化28-requests-html爬虫框架
查看>>
生成随机数的模板
查看>>
Mysql 数据库操作
查看>>
转:linux终端常用快捷键
查看>>
UVa 11059 最大乘积
查看>>
数组分割问题求两个子数组的和差值的小
查看>>
composer 报 zlib_decode(): data error
查看>>
hdu 3938 并查集
查看>>
《深入分析Java Web技术内幕》读书笔记之JVM内存管理
查看>>
python之GIL release (I/O open(file) socket time.sleep)
查看>>
软件开发与模型
查看>>
161017、SQL必备知识点
查看>>
kill新号专题
查看>>