有没有方法在不遍历二维数组的情况下查找到最大值?
例如一个3×4的二维数组,遍历查找很容易,我用的就是遍历查找的方式写的代码:
#include<stdio.h>
int main(void)
{
int a[3][4],max,row,col;
int i,j;
puts("Please enter 12 numbers:");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
printf("The matrix is showed here:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%4d",a[i][j]);
puts("\n");
}
max=a[0][0];
row=0,col=0;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(max<a[i][j])
{
max=a[i][j];
row=i;
col=j;
}
printf("The max number is a[%d][%d]=%d\n",row,col,max);
return 0;
}
但是如果是一个300×400的二维数组,遍历查找的方式近乎不可能,有没有什么方法能在这样的情况下寻找到最大值呢?