本文所说的矩阵(matrix),其实在编程实现时,往往以二维数组的形式出现。

1. 对称矩阵(二维数组)

在求解旅行商问题时,题干中要求,城市之间彼此互通(两城市之间的道路只有一条)。

double dst[100][100];                 // 表示城市间的两两距离

显然:

  • dst[i][j]=dst[j][i](表示 i 到 j 的距离)。

且,dst[i][j=0… n-1](也即矩阵的第 i 行,i 到 其他所有城市的距离),

  • dst[i][j=0… n-1] = dst[i=0…n-1][j=i],第 i 行和 第 i 列的内容完全相同,重点在其实际含义,i 行表示 i 城市到其他所有城市的距离,第 i 列表示的是其他所有城市到 i 的距离,二者是一致;

2. 根据距离矩阵求关于任一城市的连通的其他城市,以距离排序

int n;
double dst[100][100];
vector<int> nearest[100];// nearest[i][j] 的含义即为距离第 i 个城市,第 j 近的城市是?
for (int i = 0; i < n; ++i){vector<pair<double, int>> order;for (int j = 0; j < n; ++j){order.push_back(make_pair(dst[i][j], j));}sort(order.begin(), order.end());nearest[i].clear();for (int k = 0; k < order.size(); ++k){nearest[i].push_back(order[k].second);}
}

矩阵(二维数组)的性质在算法求解中的应用相关推荐

  1. C语言试题四十七之程序定义了N×M的二维数组,并在主函数中自动赋值。请编写函数function(int a[N][M], int m),该函数的功能是:将数组右上半三角元素中的值乘以m。

    1. 题目 程序定义了N×M的二维数组,并在主函数中自动赋值.请编写函数function(int a[N][M], int m),该函数的功能是:将数组右上半三角元素中的值乘以m. 2 .温馨提示 C ...

  2. C语言试题二十二之定义了3×3的二维数组,并在主函数中赋值。函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。

    1. 题目 定义了3×3的二维数组,并在主函数中赋值.函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试 ...

  3. c语言字符串二维数组的动态分配应,C语言中动态分配二维数组复习过程.doc

    C语言中动态分配二维数组复习过程.doc C语言中动态分配二维数组在C中动态分配内存的,对于单个变量,字符串,一维数组等,都是很容易的.C中动态分配二维数组的方法,很少有C语言书中描述,我查找了有的C ...

  4. C语言用数组编程矩阵,二维数组—矩阵求和(C语言)

    昨天上机了,之前上机都觉得题目挺简单的,但昨天的题明显比以前难了好吗!字符串二维数组感觉也没教什么呀..所以我也做了蛮久,现依次把这几道题放在这里留作纪念. 题目1:请写一个程序,对于一个m行m列(2 ...

  5. 算法013:二维数组中的查找-在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断中是否存在

    题目:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数.示例: 现有 ...

  6. c++ 二维数组 排序_【算法】排序算法之计数排序

    前几回,我们已经对[算法]排序算法之冒泡排序.[算法]排序算法之插入排序.[算法]排序算法之希尔排序.[算法]排序算法之选择排序.[算法]排序算法之快速排序.[算法]排序算法之归并排序.[算法]排序算 ...

  7. 编程题: 将一个矩阵(二维数组)顺时针旋转90度

    在一个m*n的矩阵任取一个元素(i, j),发现旋转后对应的元素下标变成:(j, m-i). 进一步研究一下矩阵的各种翻转可知: 沿左上到右下的对角线翻转:(i, j)与(j, i)对换; 沿右上到左 ...

  8. python二维数组初始化_如何在Python中初始化二维数组?

    这种方式比嵌套列表推导更快[x[:] for x in [[foo] * 10] * 10] # for immutable foo! 这里有一些python3时序,适用于小型和大型列表$python ...

  9. python课程设计矩阵对角线之和_Python二维数组实现求出3*3矩阵对角线元素的和示例...

    Python二维数组实现求出3*3矩阵对角线元素的和示例 题目:求一个3*3矩阵对角线元素之和. 程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出. def two_dime ...

最新文章

  1. LeetCode简单题之按奇偶排序数组 II
  2. 贝索斯专访:亚马逊帝国大规模业务转型的秘诀
  3. 开源纯C日志函数库iLOG3快速入门(八、如果你喜欢简单日志函数甚于日志函数库)...
  4. 从注册流程 分析如何安全退出多个Activity 多种方式(附DEMO)
  5. GMIS 2017大会戴文渊演讲:构建AI商业大脑
  6. 怎么把分钟转化成秒_怎么利用抖音短视频引流,手把手教你如何玩转抖音流量...
  7. 论文笔记(3)-Extracting and Composing Robust Features with Denoising Autoencoders
  8. 如何在 SAPGUI 的同一个屏幕显示两个 ALV list
  9. Gradle发布4.7版本,支持Java 10
  10. Python 之 Django框架( Cookie和Session、Django中间件、AJAX、Django序列化)
  11. android全局livedata,Android 使用ViewModel,LiveData高效、简
  12. 主动出击,马斯克欲用 430 亿美元拿下 Twitter
  13. python如何写代码_如何写出优雅的Python代码?
  14. Mac OS X中Apache开启ssl
  15. linux php-cli,php cli - shell语言的扩展利器 - Linux进阶, PHP技术 - freemouse-笔记-感悟-成长...
  16. 海思Hi3716C多媒体芯片规格书介绍
  17. HashMap和TreeMap排序
  18. python np float_Python astype(np.float)函数使用方法解析
  19. 基于C++的BNN推理
  20. [NHZXOI2017]二叉堆

热门文章

  1. MySQL 之 单行函数(数学函数、字符串函数、日期时间函数、流程函数 )
  2. Kafka如何做到全局有序
  3. weui上传组件的图片封装到formdata_自定义toast-ui富文本组件的图片黏贴上传
  4. linux查看接口的命令,linux shell命令查看接口索引--ip link show
  5. 剑指offer面试题34. 二叉树中和为某一值的路径(先序遍历)(回溯)
  6. GitHub通过Git上传文件(夹)
  7. 关于排序算法思想总结,你该了解这些
  8. [转帖]九句英语闯天下
  9. 【Tensorflow】相关面试题整理(转)
  10. 401 un[Authorize]