zoukankan      html  css  js  c++  java
  • 矩阵(二维数组)的性质在算法求解中的应用

    本文所说的矩阵(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);
        }
    }
  • 相关阅读:
    远程调用之RMI、Hessian、Burlap、Httpinvoker、WebService的比较
    遍历List/Map的时候删除成员遇到的奇怪问题
    Java事务处理
    ThreadLocal学习记录
    IntelliJ IDEA+Tomcat+Nginx运行git项目
    JavaIO和JavaNIO
    Spring MVC的启动过程
    Java中的集合类
    Java中的泛型
    Java 多线程的基本概念
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9423797.html
Copyright © 2011-2022 走看看