#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define row 3
#define col 3
void func(int arr[row][col], int num){
int i = 0;
int j = col - 1;
int temp = arr[i][j];
while (1){
if (num == temp){
printf("存在\n");
break;
}
else if (num < temp&&j>=0){
temp = arr[i][j--];
}
else if (num>temp&&i<3){
temp = arr[i++][j];
}
else{
printf("不存在\n");
break;
}
}
}
int main(){
int arr[][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
for (int i = 0; i < 3; i++){
for (int j = 0; j < 3; j++){
printf("%d", arr[i][j]);
}
printf("\n");
}
int x;
scanf("%d", &x);
func(arr, x);
system("pause");
return 0;
}
有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N);
最新推荐文章于 2019-07-08 17:34:00 发布