寻找矩阵鞍点
来源:互联网 发布:父母干涉爱情知乎 编辑:程序博客网 时间:2024/05/16 19:13
一个m*n矩阵鞍点(saddle):如果存在某个元素a[i][j]是第i行的最小值,第j列的最大值,则此元素就是矩阵的鞍点。 | 1 , 2 , 3 | | 4 , 5 , 6 | | 7 , 8 , 9 |如,此矩阵的鞍点即为a[0][2] == 7。 这个程序有一个缺陷就是当一行中,有两个相等的最小值,且第一个最小值不是矩阵鞍点时,程序不会在检测第二个值。
/* c语言求鞍点程序 */#include <stdio.h>#include <stdlib.h>#define max_size 10void findSaddle(int (*list)[max_size], int m, int n){/* find saddle item int matrix */ int i, j; int rowMin, colMax, isSaddle; printf("the matrics:\n"); for(i = 0; i < m; i++){ for(j = 0; j < n; j++){ printf("%3d", list[i][j]); } printf("\n"); } for(i = 0; i < m; i++){ rowMin = 0; for(j = 1; j < n; j++){ if(list[i][j] < list[i][rowMin]) rowMin = j; } colMax = i, isSaddle = 1; for(j = 1; j < m; j++){ if(list[j][rowMin] > list[colMax][rowMin]){ isSaddle = 0; break; } } if(isSaddle){ printf("the saddle of array is a[%d][%d] == %d\n", colMax, rowMin, list[colMax][rowMin]); exit(1); } } printf("there is no sabble in the array!\n");}void main(){ int M, N, i, j; int a[max_size][max_size]; printf("input the row num:"); scanf("%d", &M); printf("input the col num:"); scanf("%d", &N); for(i = 0; i < M; i++){ for(j = 0; j < N; j++){ printf("input the a[%d][%d]:", i, j); scanf("%d", &a[i][j]); } } findSaddle(a, M, N);}
0 0
- 寻找矩阵中的鞍点
- 寻找矩阵 鞍点
- 寻找矩阵鞍点
- 寻找一个矩阵的鞍点
- 寻找矩阵的鞍点问题
- 寻找矩阵中的鞍点<二维数组>
- 鞍点寻找
- 矩阵鞍点
- 矩阵鞍点
- 矩阵鞍点
- 二维数组寻找鞍点
- 鞍点的寻找
- CCF NOI1047 寻找鞍点
- 暴力搜索 寻找鞍点
- MOOC北京理工《C语言程序设计(上)》第8周第2题:寻找矩阵的鞍点
- 矩阵鞍点算法
- 矩阵的鞍点
- 矩阵的鞍点
- 程序员起点纪念
- Kettle TableInput 将从前一步骤获取参数整合到数据流中
- PyQt5:Box布局(12)
- 九章算术卷第三 衰分
- 【hdu】4228 Flooring Tiles【反素数】
- 寻找矩阵鞍点
- 关于构造函数继承的一些问题
- KMP算法 --->字符串
- Toast 显示提示信息
- 嵌入式 、linux驱动模块编译(初学者)
- 面试热门题:字符串左旋右旋
- PyQt5:网格布局(13)
- 求解爱因斯坦阶梯问题。
- 五. Ubuntu下安装 tftp 服务器和 NFS 服务器