算法题目---二维数据中的查找
2017-06-29 10:53
253 查看
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
请完成一个函数,输入这样的一个二维数据和一个整数,判断数组中是否含有该整数。
bool Find(int *matrix,int rows,int cols, int num)
{
bool found = false;
if(matrix != NULL && rows > 0 && cols > 0 )
{
int row = 0;
int col = cols - 1;
while(row < rows && col >= 0)
{
if(matrix[row * cols + col] == num)
{
found = true;
break;
}
else if(matrix[row * cols + col] > num)
-- col;
else
++ row;
}
}
return found;
}
void test()
{
int data[] = {1,2,8,9,2,4,9,12,4,7,10,13,6,8,11,15};
//bool ret = Find(data,4,4,7);
bool ret = Find(data,4,4,22);
cout<<"ret="<< ret <<endl;
}
int main()
{
test();
return 0;
}
请完成一个函数,输入这样的一个二维数据和一个整数,判断数组中是否含有该整数。
bool Find(int *matrix,int rows,int cols, int num)
{
bool found = false;
if(matrix != NULL && rows > 0 && cols > 0 )
{
int row = 0;
int col = cols - 1;
while(row < rows && col >= 0)
{
if(matrix[row * cols + col] == num)
{
found = true;
break;
}
else if(matrix[row * cols + col] > num)
-- col;
else
++ row;
}
}
return found;
}
void test()
{
int data[] = {1,2,8,9,2,4,9,12,4,7,10,13,6,8,11,15};
//bool ret = Find(data,4,4,7);
bool ret = Find(data,4,4,22);
cout<<"ret="<< ret <<endl;
}
int main()
{
test();
return 0;
}
相关文章推荐
- 数据结构与算法题目集(中文)4-10 二分查找 (20分)
- pta-数据结构与算法题目集(中文)--4-4 链式表的按序号查找
- #数据结构与算法学习笔记#剑指Offer1:二维数组中的查找(JAVA)
- 正确的二分法数据查找算法——百度百科里的那个算法是错误的
- [php] 数据结构&算法(PHP描述) 查找&&二分法查找
- 在大容量数据集中查找前N个数的算法
- 数据记录快速查找算法
- Pku acm 2771 Guardian of Decency 数据结构题目解题报告(十五)---- 匈牙利算法求二分图的最大匹配
- (算法课大报告)大数据的查找与排序
- 实现了一个压缩算法,在数据高度压缩的前提下,还可以快速查找 key
- 实现了一个压缩算法,在数据高度压缩的前提下,还可以快速查找 key
- 【数据结构与算法之查找算法一】顺序查找
- Pku acm 1125 Stockbroker Grapevine 数据结构题目解题报告(八)---- 弗洛伊德(floyd)算法
- 【数据结构与算法之查找算法二】二分查找
- 题目1:二维数组中的查找
- 【剑指Offer】面试招聘题目1:二维数组中的查找
- Pku acm 2536 Gopher II 数据结构题目解题报告(十四)---- 匈牙利算法求二分图的最大匹配
- Pku acm 1274 The Perfect Stall 数据结构题目解题报告(十三)---- 匈牙利算法求二分图的最大匹配
- 算法题41 超大数据量遍历查找
- Java学习之数组1(1.数组的声明;2.元素为引用数据类型的数组;3.关于main方法里的String[] args;4.数组排序;5.数3退1 数组算法,(用数组模拟链表);6数组查找之二分法;7数组的拷贝)