杨氏矩阵思路详解(C语言)

什么是杨氏矩阵
杨氏矩阵是从左到右,从上到下数字递增的一个矩阵
例如:
1 2 3
4 5 6
7 8 9
但不是说,第一行比第二行的数字要大,第三行数字要比第二行数字要大,例如下面的情况
例如:
1 2 3
2 4 5
4 5 6

思路
在杨氏矩阵中,查找某个数字,我们一般可以对比查找,那开始对比的数字怎么寻找呢?
首先可以找右上角或者左下角这两种情况,具体举例用右上角。
为什么找的是这两个数字?
原因:
1 2 3
2 4 5
4 5 6
看这个矩阵,右上角的3是一行中最大的,一列中最小的,和它进行对比。
要找的数字比它大,向下继续寻找(y不变,x- -)
要找的数字比它小,向左继续寻找(x不变,y- -)

为什么不是左上角,右下角的数字呢?
因为左上角的数字比要找的任何数字都要小,除了它本身以外,再去找一个其他的数字与左上角的数字对比,没有什么意义,反而会浪费电脑操作的时间,右下角同理。

实现函数

int Findnum(int arr[3][3], int k, int row, int col)
{
   
	int x = 0;
	int y = col - 1;//找右上角进行对比

	while (x <= row - 1 

你可能感兴趣的:(c)