两种方法 : 求矩阵的马鞍点
(2011-12-07 15:42:47)
标签:
马鞍点时间复杂度o(n3)o(n)---0(n2)杂谈 |
分类: 算法 |
题目:主要的任务是遍历二维数组,找出数组中行最小列最大的元素,称为马鞍点。
思路一:针对二维数组的每一个元素对它的同行同列都进行判断,如果是则将flag设为1并且输出,否则设为0;
时间复杂度:o(n^3)
代码:
#include<stdio.h>
#define M 20
int main()
{
int
data[M][M];
int
row, col, inx, iny, min;
int
flag = 1;
int
i,j;
int
count=0;
printf("please input the col and row\n");
scanf("%d%d",&row, &col);
getchar();//接收‘\n’
printf("please input the memeber of \n");
for(inx = 0;
inx < row; inx++)
for(iny = 0;
iny < col; iny++)
scanf("%d",&data[inx][iny]);//输入数组的元素
for(inx = 0; inx
< row; inx++)
for(iny =0;
iny < col; iny++){//对每一个二维元素进行判断
for(i=0; i < col; i++)
if(data[inx][iny]>data[inx][i])
flag = 0;//利用flag进行标志
for(i=0;i<row&&flag;i++)
if(data[inx][iny]<data[i][iny])
思路一:针对二维数组的每一个元素对它的同行同列都进行判断,如果是则将flag设为1并且输出,否则设为0;
时间复杂度:o(n^3)
代码:
#include<stdio.h>
#define M 20
int main()
{