首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

一个关于数据结构的面试题目。解决方案

2012-02-15 
一个关于数据结构的面试题目。题目大概如下:在平面上有N个点,分别是a(0)-a(N-1),各点之间都相互连通a(0)到

一个关于数据结构的面试题目。
题目大概如下:
在平面上有N个点,分别是a(0)-a(N-1),各点之间都相互连通
a(0)到其余各点(a(1)-a(N-1))的权值依此为b1(0)-b1(N-2)
a(1)到其余各点(a(2)-a(N-1))的权值依次为b2(0)-b2(N-2)
a(2)到其余各点(a(3)-a(N-1))的权值依次为b3(0)-b2(N-2)
.
.
.
a(N-2)到a(N-1)的权值为b(N-1);
问题:
求出从a(0)出发,遍历所有点所走路程最少的算法

这个该怎么做呢???
穷举所有再比较???

[解决办法]
这是经典的TSP问题。
一、最近邻法,从a(0)开始,一个一个地将“离刚刚加入到回路的上一节点最近的一个节点”加入回路中。
算法简单,但得到的解决不是很优
二、最近插入法,从a(0)开始,某k个点(1<=k<=n-1)构成一最佳回路s(k),加上和回路最近的点组成新的回路s(k+1)
得到的解相对比较优,但复杂度是o(2^n)


[解决办法]
不懂
帮你顶下

热点排行