矩阵鞍点的算法,用c++实现。

来源:百度知道 编辑:UC知道 时间:2024/06/04 02:33:02
若在m×n的矩阵中有一个元素a[i,j]满足下述条件:a[i,j]既是第i行元素中的最小值,又是第j列元素中的最大值(称为鞍点),试写一个求矩阵鞍点的算法,并分析你所写的算法所需时间。

#include<iostream>
#include<stdlib.h>
using namespace std;
const int M=4,N=5;

int main(void){
int i,j;
int i_array_s[M][N];
void find(int i_array_x[M][N]);
cout<<"请输入一个"<<M<<"乘"<<N<<"数组:"<<endl;
for(i=0;i<M;i++){
for(j=0;j<N;j++){
cin>>i_array_s[i][j];
}
}
find(i_array_s);
system("pause");
return 0;
}
void find(int i_array_x[M][N]){
int i,j,k,n=0;
int temp,row,column;
for(i=0;i<M;i++){
for(j=0;j<N;j++){
if(i_array_x[i][0]<i_array_x[i][j]){//找到行最大的
temp=i_array_x[i][j];
row=i;
column=j;
}
}
for(k=0;k<M;k++){
if(i_array_x[k][column]<i_array_x[row][column]){//判断是不是列最小的
break;
}
else if(k==M-1){
cout<<"马鞍点有:"<<endl;