Algorithm 贪婪算法伪码
假设你必须从伊斯兰堡开车到拉合尔。一开始,你的油箱是满的。当你的油箱加满时,它能容纳足够行驶m英里的汽油,你还有一张地图,上面显示了沿途加油站之间的距离。设d1Algorithm 贪婪算法伪码,algorithm,pseudocode,greedy,Algorithm,Pseudocode,Greedy,假设你必须从伊斯兰堡开车到拉合尔。一开始,你的油箱是满的。当你的油箱加满时,它能容纳足够行驶m英里的汽油,你还有一张地图,上面显示了沿途加油站之间的距离。设d1
你的解决方案是最优的吗?您的解决方案的时间复杂度是多少?此算法从伊斯兰堡开始,反复尝试在不耗尽汽油的情况下尽可能远地行驶
current_distance = 0
current_stop = 0
stops = []
while current != lahore:
next_stop = 0
while distance(next_stop) - current_distance <= m:
next_stop = next_stop + 1
next_stop = next_stop - 1
current_stop = next_stop
current_distance = distance(current_stop)
add next_stop to stops
return stops
这是一个最佳解决方案。为了看到这一点,我们注意到,任何一系列的站点,如果站点数少于贪婪算法,那么必须在路径的某个点“通过”贪婪算法
使用归纳法,我们可以看到,如果贪婪算法在第一次停车后是最远的,而在第n次停车后是最远的,那么贪婪算法必须是路线上所有停车的最远算法
虽然该算法具有复杂性,并在计算上返回最优解,但它返回的路线可能不是非常“均匀”或“平滑”的路线。为了生成供人们实际使用的路线,需要考虑更多的路线,使其站点之间的间隔更均匀。这个问题读起来像是一些家庭作业中的复制粘贴作业。无论如何,这是离题的,因为询问代码的问题必须证明对正在解决的问题的最低理解。包括尝试过的解决方案、它们不起作用的原因以及预期结果。另见:我无法映射贪婪算法的类型,请帮助!!比TSP容易得多。我猜顺序是N,其中N是两个城市之间的加油站数量。根据声明,我了解到的是,di到dn这些加油站都会在路线上出现,每行驶m英里,油箱就会用完,根据这一点,我们必须停止对每一个加油站如何在它上面:找到范围内的所有加油站。选择离目的地最近的一个。重复这不是最佳的。