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

/2.
////杨氏矩阵 
//有一个二维数组.
//数组的每行从左到右是递增的,每列从上到下是递增的.
//在这样的数组中查找一个数字是否存在。
//时间复杂度小于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
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int Findnum(char arr[][3], int x, int y, int f){
	int i = 0, j = x - 1;
	while (j >= 0 && i < y){
		if (f > arr[i][j]){
			i++;
		}
		else if (f < arr[i][j]){
			j--;
		}
		else{
			return 1;
		}
	}
	return 0;

}
int main(){
	char arr1[][3] = { { 1, 2, 3 },
	                  { 2, 3, 4 },
	                  { 3, 4, 5 }
	};
	int to_find = 0;
	printf("请输入你要找的数:\n");
	scanf("%d", &to_find);
	if (Findnum(arr1, 3, 3, to_find)){
		printf("找到了!\n");
	}
	else{
		printf("没找到!\n");
	}

	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43291743/article/details/89380268