C语言第四十六弹---最快方法找到杨氏矩阵中的数下标
2023-12-13 20:44:48
C语言实现最快方法找到杨氏矩阵中数下标。
定义:杨氏矩阵是一种用于描述Young 表和表示论的工具,它在代数几何和组合数学中有广泛的应用。一个杨氏矩阵是一个以若干个正整数构成的矩形表格,且每行和每列的元素单调递增。
从定义中可获得条件:1、对于每一行,从左到右的元素单调递增
2、对于每一列,从上到下的元素单调递增。
思路:想要最快找到想要寻找的数及下标,可以让该数直接和每行的最大值进行比较,如果小于本行最大值,证明在本行中,通过更改本行列下标进行查找。如果大于本行最大值,小于下一行最大值,证明就在下一行中,通过改变行来进行二次判断,直到找到数所在行的位置。
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void FindNum(int arr[3][3], int row, int col, int k)
{
int x = 0;
int y = col - 1;
while (x <= row && y >= 0)
{
if (arr[x][y] < k)//小于本行最大值
{
x++;
}
if (arr[x][y] > k)//大于本行最大值
{
y--;
}
if (arr[x][y] == k)
{
printf("查找数%d x坐标为:%d y坐标为:%d",k,x,y);
break;
}
}
}
int main()
{
int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };
int k = 7;
int row = 3;
int col = 3;
FindNum(arr, row, col, k);
return 0;
}
文章来源:https://blog.csdn.net/m0_74074179/article/details/134979138
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!