用C语言完成杨氏矩阵

        对于杨氏矩阵老说,右上角和左下角的元素是有特点的。右上角的元素是一行中最大的,一列中最小的。左下角的元素是一行中最小的,是一列中最大的。所以我们可以从右上角或者左下角开始查找。比如:从右上角开始查找的时候,右上角的元素比我们要查找元素小,我们就可以去掉右上角元素所在的这一行;右上角的元素比我们要查找的元素大,我们就可以去掉右上角元素所在的这一列。然后依然找右上角的元素继续和要查找的元素与比较。这样每一次比较去掉一行或者去掉一列。这个查找效率是高于遍历数组元素的,而且时间复杂度是小于O(N)。


#include<stdio.h>
void find(int arr[][4], int x, int y, int input)
{
	int i = 0;
	int j = y - 1;//从右上角开始遍历
	int flag = 0;
	while (i < x && j >= 0)
	{
		if (input < arr[i][j])//比我小就向左
		{
			j--;
		}
		else 
			if (input > arr[i][j])//比我大就向下
			{
				i++;
			}
			else
			{
				printf("找到了,下标是arr[%d][%d]", i, j);
				flag = 1;
				break;
			}
	}
	if (flag == 0)
	{
		printf("没有找到!");
	}
}
int main()
{
	int arr[3][4] = { {1,2,3,4} ,{5,6,7,8},{6,7,8,9} };
	int input = 0;
	printf("请输入查找的元素:");
	scanf("%d", &input);
	find(arr, 3, 4, input);
	return 0;
}

相关推荐

  1. C语言完成矩阵

    2024-01-28 19:24:01       57 阅读
  2. C语言——oj刷题——矩阵

    2024-01-28 19:24:01       54 阅读
  3. 简单矩阵

    2024-01-28 19:24:01       45 阅读
  4. 矩阵中的二分查找算法实现

    2024-01-28 19:24:01       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-28 19:24:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-28 19:24:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-28 19:24:01       82 阅读
  4. Python语言-面向对象

    2024-01-28 19:24:01       91 阅读

热门阅读

  1. 设计模式>Prototype(原型模式)

    2024-01-28 19:24:01       46 阅读
  2. golang版本使用令牌桶算法来实现限流的策略

    2024-01-28 19:24:01       55 阅读
  3. Redis的五种常用数据结构以及其底层实现

    2024-01-28 19:24:01       53 阅读
  4. 后端热门推荐商品接口实现

    2024-01-28 19:24:01       50 阅读
  5. Windows 下的 OpenVPN 安装

    2024-01-28 19:24:01       45 阅读
  6. shell练习

    2024-01-28 19:24:01       47 阅读
  7. C++从零开始的打怪升级之路(day23)

    2024-01-28 19:24:01       59 阅读
  8. python使用函数求余弦函数的近似值

    2024-01-28 19:24:01       52 阅读
  9. 并行计算工具 MPI 简单教程

    2024-01-28 19:24:01       53 阅读
  10. 2024年1月27日

    2024-01-28 19:24:01       57 阅读
  11. 初等数论,LeetCode 365. 水壶问题

    2024-01-28 19:24:01       62 阅读