二维数组中查找数据(该数组每行从左至右递增,每列从上至下递增)
2017-04-12 19:12
323 查看
/*二维数组中查找(该数组每行从左至右递增,每列从上至下递增)*/ #pragma once #include <iostream> using namespace std; const int ROW = 4; const int COL = 4; bool Find(int a[ROW][COL],int key) { if (a && COL>0 && ROW>0) { int col = COL-1; int row = 0; while(col >= 0 && row < ROW) { if (a[row][col] == key) { return true; } else if (a[row][col] > key) { col -= 1; } else { row += 1; } } } return false; } void TestFind() { int array[ROW][COL] = {{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}}; int data = 5; cout<<data<<":"<<Find(array,data)<<endl;//数组中没有的值 data = 1; cout<<data<<":"<<Find(array,data)<<endl;//最大值 data = 15; cout<<data<<":"<<Find(array,data)<<endl;//最小值 data = 13; cout<<data<<":"<<Find(array,data)<<endl;//中间值 cout<<1<<":"<<Find(NULL,data)<<endl;//空指针 }
相关文章推荐
- 算法设计:二维数组,横向纵向均递增,如何查找n是否在数组里??
- //杨氏矩阵 有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N);
- 【c语言】二维数组中的查找,杨氏矩阵在一个二维数组中,每行都依照从左到右的递增的顺序排序,输入这种一个数组和一个数,推断数组中是否包括这个数
- 【c语言】二维数组中的查找,杨氏矩阵在一个二维数组中,每行都按照从左到右的递增的顺序排序,输入这样的一个数组和一个数,判断数组中是否包含这个数
- 二维数组中的查找-在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
- 用折半查找法在一组排好序(递增有序或递减有序)的值中查找某个数据+ 冒泡排序+选择排序+数组排序(例子)
- 【c++程序】用递增法在数组中查找数据
- 有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N)
- 杨氏矩阵:有一个二维数组,数组的每行从左到右都是递增的,每列从上到下都是递增的,从这样的数组中查找一个数字是否存在
- 有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N);
- //杨氏矩阵 有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。
- 有一个二维数组.----杨氏矩阵 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N);
- 在一个二维数组中,每一行都从左到右递增,每一列都从上到下递增,在这样一个数组里查找一个数
- 有一个二维数组杨氏矩阵,数组的每行从左到右是递增的,每列从上到下是递增的,在这样的数组中查找一个数字是否存在
- 程序员面试题目总结--数组(五)【数组的后面m个数移动为前面m个数、列的前n项数据、判断整数x是否可以表示成n个连续正整数的和、数组中出现奇数次的元素、二维数组中的查找】
- 有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N);
- 杨氏矩阵 有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。
- 2. 有一个二维数组.----杨氏矩阵 。数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N);
- 在一个二维数组中查找一个数,这个数组的行和列都是以递增形式存储的
- 递增有序数组中,查找某一个数字的位置