杨氏矩阵

本文介绍了一种在杨氏矩阵中高效查找特定数值的方法。杨氏矩阵是一种特殊类型的二维数组,其每一行从左到右、每一列从上到下递增排列。文章详细阐述了如何利用这一特性设计一种时间复杂度低于O(N)的搜索算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要求://杨氏矩阵
有一个二维数组.
数组的每行从左到右是递增的,每列从上到下是递增的.
在这样的数组中查找一个数字是否存在。
时间复杂度小于O(N);
数组:
1 2 3
2 3 4
3 4 5

1 3 4
2 4 5
4 5 6

1 2 3
4 5 6
7 8 9
杨氏矩阵,是对组合表示理论和舒伯特演算很有用的工具。它提供了一种方便的方式来描述对称和一般线性群的群表示,并研究它们的性质。有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N);

//int Yang(int arr[ROW][COL], int val)
//{
//	int i = 0;
//	int j = COL - 1;
//	int tmp = arr[i][j];
//	while (1)
//	{
//		if (tmp == val)
//		{
//			return 1;
//		}
//		else if (tmp < val && j >= 0)
//		{
//			tmp = arr[++i][j];
//		}
//		else if (tmp > val &&j >= 0)
//		{
//			tmp = arr[i][--j];
//		}
//		else
//		{
//			return 0;
//		}
//	}
//
//}
//
//int main()
//{
//	int a[ROW][COL] = { 1, 2, 3, 2, 3, 4, 3, 4, 5 };
//	int i = 0;
//	int j = 0;
//	int num; //
//
//	printf("数组为:\n");
//	for (i = 0; i < ROW; i++){
//		for (j = 0; j < COL; j++)
//		{
//			printf("%5d", a[i][j]);
//		}
//		printf("\n");
//	}
//	printf("Please Enter You Want TO Find Number:");
//	scanf_s("%d", &num);
//	if (Yang(a, num))
//	{
//		printf("%d在该数组中\n", num);
//	}
//	else
//	{
//		printf("%d不在该数组中\n", num);
//	}
//	system("pause");
//	return 0;
//}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值