我最近看到了一个叫做邮差问题的东西,是说一个人从某一点出发跑遍平面上所有的点,求他最少要走的路,那能不能指定一个最中心的点为起点,然后每次都选择离他最近的那个点去走,最后所有点都走完了算法结束
你要知道,贪心算法从来不是用来算最优解的
它只是以最快的时间算出一个至少不是最糟糕的解
如果你要算最优解,那么贪心算法给出的很可能是个错误答案
比如从A到B有两条路,一条直达,长度是2,另一条经过C和D,长度都是1
那么显然直接走AB路程是2,而走ACDB路程是3
但是按贪心算法你就会从第二条路走
此外,邮差问题不仅是要找迷宫里的最短路径,它还要遍历迷宫
你用贪心算法那就会走进一个死循环里面
就算你再用字典过滤一遍,走过的节点不走,那简单的走最近的点也一定会造成严重绕路