本质上算法都是对数据的操作,没有数据,没有存储数据的容器和组织方式,算法就是无源之水无本之木,就是巧妇也难为无米之炊。算法是演员,变量、数组、容器等就是舞台,

  • 然后整个算法的处理流程,都是针对这些数据(存储在变量或者 STL 中的容器中)进行初始化,修改,更新的,算法的结束也是对这些数据进行判断;(算法实现过程中的数据,相当于面向对象编程中的成员变量),数据居于中心位置;

1. 旅行商问题

  • 结点(城市)间的邻接关系与权重 ⇒ 邻接矩阵 int dst[100][100];(二维数组,如果没有更复杂的操作,仅仅是存储和访问,使用二维数组即可,无需更为复杂的vector<vector<int>>
  • 城市是否已被访问:bool visited[n];/vector<int>&
  • 访问过的结点:vector<int> path;
    • 可以很方便地获取尾部结点(最新添加的),多少有点像栈(stack),path.back()
  • 一些变量:
    • int best;维护全局的唯一标识最终路径的距离,
    • int curLen;访问到目前的所走过的路程;
posted on 2016-09-10 12:28  未雨愁眸  阅读(111)  评论(0编辑  收藏  举报