在杨氏矩阵中查找某个数,找到了返回true,找不到返回false。
来源:互联网 发布:透明头像生成软件 编辑:程序博客网 时间:2024/05/18 02:33
杨氏矩阵的特点是它的行和列的数都是递增的,所以我们可以选择它的一个顶点元素作为比较对象。比如我在下面这个数组中查找数字2。
①把a[0][3]处的元素4和2比较,2<4,所以2肯定不在第3列(因为4是第三列最小的元素,下面的元素都比4大,自然都比2大),我们就把第三列排除。
②把a[0][2]处的元素3和2比较,2<3,所以2也肯定不在第2列,我们就再把第2列排除。
③把a[0][1]处的元素2和2比较,2==2,2找到了,查找结束。
②把a[0][2]处的元素3和2比较,2<3,所以2也肯定不在第2列,我们就再把第2列排除。
③把a[0][1]处的元素2和2比较,2==2,2找到了,查找结束。
如果查找的数是6,6>4,那么就把第0行排除(因为4是第0行最大的元素,6都比这行最大的元素大,那其他元素肯定是小于6的),然后开始从a[1][3]比较 ,以此类推,找不到就排除这一行,直到找到或者找不到为止。
bool Find(int* matrix, int rows, int columns, int number){ bool found = false; //先把found置为false if (matrix != NULL && rows > 0 && columns > 0)//传过来的数组首地址必须有效并且数组大小要大于0 { int row = 0; int column = columns - 1; while (row < rows && column >= 0) { if (matrix[row * columns + column] == number)//先比较坐标为(0,2)的元素,相等则found = true { found = true; break; } else if (matrix[row * columns + column] > number) --column;//如果大于要查找的数,排除这列 else ++row;如果小于要查找的数,排除这一行 } } return found;}int main(){ int matrix[3][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; int number = 5; bool result = Find(matrix, 3, 3, number); if (true == result) printf("got it\n"); else printf("Don't get it\n"); system("pause"); return 0;}
查找5,查找成功
.
.
.
查找10,查找失败
阅读全文
1 0
- 在杨氏矩阵中查找某个数,找到了返回true,找不到返回false。
- 用折半查找法在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.
- 可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)
- 写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回
- DFS中如何一找到true就返回true, 其他返回false
- 在已知字符串中查找给定的子串,若找到返回位置,找不到返回-1
- 写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)
- 写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)
- .写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)C语言
- 杨氏矩阵中查找某个数
- 折半查找算法,找一个整数中的某个数字,找到返回下标,找不到返回-1;
- :输入10个整数,保存在一个数组中,在数组中查找某个数,给出是否找到的信息。如果找到了,要求输出该数在数组中所处的位置;如果找不到,输出“没有找到!
- 查找某个数是否在矩阵中
- js中 [] ? true : false 的返回值为什么是true?
- 【译】在Java中,为什么1000 == 1000 返回false,而100 == 100 返回true?
- 语言编程中返回false和true的易错点
- CheckBox控件返回"true,false"的问题
- android onKeyDown返回true与false区别
- Frida官方手册
- 展示医院科室的下拉列表(连接数据库数据)
- 金蝶K3批量禁用物料的语句
- Tips:在控制台(Console)中调用CFile、CString等
- 这可能是Docker宣布拥抱Kubernetes的真实原因
- 在杨氏矩阵中查找某个数,找到了返回true,找不到返回false。
- Vue项目结构介绍
- 友盟register failed: -11 accs bindapp error!
- 栈和队列的基本操作
- 寂寞让我如此美丽
- Flume fan out(扇出)详解
- 编程实现多边形裁剪 vs2017
- linux中vim命令的细节
- SpringMvc的框架结构介绍