0
点赞
收藏
分享

微信扫一扫

递增数组查找


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


1 2 3 
2 3 4 
3 4 5

#define _CRT_SECURE_NO_WARNINGS 1  
#include<stdio.h>  
#include<stdlib.h>  
  
char find_num(int arr[][4],int ROW,int LINE,int n)  
{  
int row = 0;  
int line = LINE-1;  
while(row<ROW,line>=0)  
    {  
if(arr[row][line]==n)  
return 'y';  
else if(arr[row][line]<n)  
            row++;  
else  
            line--;  
    }  
return 'n';  
}  
int main()  
{  
int arr[4][4]={{1,2,3,4},{5,6,7,8},{6,7,8,9},{10,11,12,13}};  
int num = 1;  
char ret = find_num(arr,4,4,num);  
if(ret=='y')  
    {  
"在\n");  
    }  
else  
    {  
"不在\n");  
    }  
"pause");  
return 0;  
}


#define _CRT_SECURE_NO_WARNINGS 1  
#include<stdio.h>  
#include<stdlib.h>  
  
char find_num(int arr[][4],int ROW,int LINE,int n)  
{  
int row = ROW-1;  
int line = 0;  
while(row>=0,line<LINE)  
    {  
if(arr[row][line]==n)  
return 'y';  
else if(arr[row][line]<n)  
            line++;  
else  
            row--;  
    }  
return 'n';  
}  
int main()  
{  
int arr[4][4]={{1,2,3,4},{5,6,7,8},{6,7,8,9},{10,11,12,13}};  
int num = 1;  
char ret = find_num(arr,4,4,num);  
if(ret=='y')  
    {  
"在\n");  
    }  
else  
    {  
"不在\n");  
    }  
"pause");  
return 0;  
}

举报

相关推荐

0 条评论