C语言第四十六弹---最快方法找到杨氏矩阵中的数下标

简介: C语言第四十六弹---最快方法找到杨氏矩阵中的数下标

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;
}
相关文章
|
20天前
|
C语言
c语言左旋字符串问题(不同方法超详细解答)
c语言左旋字符串问题(不同方法超详细解答)
10 1
|
1月前
|
机器学习/深度学习 算法 C语言
详细介绍递归算法在 C 语言中的应用,包括递归的基本概念、特点、实现方法以及实际应用案例
【6月更文挑战第15天】递归算法在C语言中是强大力量的体现,通过函数调用自身解决复杂问题。递归涉及基本概念如自调用、终止条件及栈空间管理。在C中实现递归需定义递归函数,分解问题并设定停止条件。阶乘和斐波那契数列是经典应用示例,展示了递归的优雅与效率。然而,递归可能导致栈溢出,需注意优化。学习递归深化了对“分而治之”策略的理解。**
34 7
|
1月前
|
测试技术 C语言
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
22 1
|
18天前
|
编译器 C语言
C语言枚举:深入探索下标默认值、自定义值及部分自定义情况
C语言枚举:深入探索下标默认值、自定义值及部分自定义情况
11 0
|
18天前
|
IDE 编译器 开发工具
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
10 0
|
21天前
|
C语言
|
24天前
|
存储 C语言
C语言---求一个整数存储在内存中的二进制中1的个数--3种方法
C语言---求一个整数存储在内存中的二进制中1的个数--3种方法
15 0
|
2月前
|
传感器 人工智能 物联网
【C 言专栏】C 语言与硬件交互的方法
【5月更文挑战第4天】C 语言在硬件交互中扮演关键角色,主要通过直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射I/O和设备驱动程序开发。挑战包括硬件多样性、实时性要求和错误处理。随着物联网和人工智能发展,C语言与硬件交互的需求增加,未来将面临更多新硬件和技术的挑战。本文旨在帮助读者理解和掌握这一领域的知识,以实现更高效的硬件互动。
【C 言专栏】C 语言与硬件交互的方法
|
2月前
|
C语言
C语言进阶⑫(指针下)(指针和数组笔试题解析)(杨氏矩阵)(上)
C语言进阶⑫(指针下)(指针和数组笔试题解析)(杨氏矩阵)
29 0
|
1月前
|
算法 C语言
C语言——oj刷题——杨氏矩阵
C语言——oj刷题——杨氏矩阵
17 0