贪心算法

✍ dations ◷ 2025-02-24 00:10:18 #代数,算法

贪心算法(英语:greedy algorithm),又称贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。比如在旅行推销员问题中,如果旅行员每次都选择最近的城市,那这就是一种贪心算法。

贪心算法在有最优子结构的问题中尤为有效。最优子结构的意思是局部最优解能决定全局最优解。简单地说,问题能够分解成子问题来解决,子问题的最优解能递推到最终问题的最优解。

贪心算法与动态规划的不同在于它对每个子问题的解决方案都做出选择,不能回退。动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能。

贪心法可以解决一些最优化问题,如:求图中的最小生成树、求哈夫曼编码……对于其他问题,贪心法一般不能得到我们所要求的答案。一旦一个问题可以通过贪心法来解决,那么贪心法一般是解决这个问题的最好办法。由于贪心法的高效性以及其所求得的答案比较接近最优结果,贪心法也可以用作辅助算法或者直接解决一些要求结果不特别精确的问题。

实现该算法的过程:
从问题的某一初始解出发;while 能朝给定总目标前进一步 do,求出可行解的一个解元素;
最后,由所有解元素组合成问题的一个可行解。

最小生成树的算法如Prim算法、Kruskal算法均为贪心算法,其中Prim算法是对图上的节点贪心,而Kruskal算法是对图上的边贪心。

相关

  • 罗塞林贡比涅的罗塞林(拉丁语:Roscellinus Compendiensis,Rucelinus ,法语:Roscelin de Compiègne,英语:Roscelin of Compiègne,Roscellinus,1050年-1125年),又译为络瑟林、洛色林、若瑟林,法
  • 置换反应置换反应又称单置换反应,是指一种元素或化合物的离子根与一种离子化合物发生的反应,狭义氧化还原反应是置换反应的一种,且必为广义的氧化还原反应。在反应中,关键在于还原性或氧
  • 奥古斯塔市奥古斯塔(英语:Augusta)是美国佐治亚州的其中一个城市。高尔夫美国名人赛的举办场地奥古斯塔高尔夫球俱乐部位于这里。历史 | 经济 | 地理 | 州长亚特兰大阿普林县 | 阿特
  • 加冕加冕,是指将代表权力之冠冕戴上的一种仪式,加冕礼是在君主的头上放置或赠予王冠的行为。 这个术语通常不仅指物理冠冕,而且指整个仪式,其中冠状物的行为发生,以及其他物品的呈现,
  • 维亚切斯拉夫·维克多洛维奇·沃洛金维亚切斯拉夫·维克多洛维奇·沃洛金(俄语:Вячесла́в Ви́кторович Воло́дин,1964年2月4日-)是自2016年10月5日起担任第10任国家杜马主席(英语:Chairma
  • 得州游骑兵德克萨斯游骑兵(Texas Rangers)可以指:
  • 阳澄湖阳澄湖,中国江苏境内主要淡水湖之一,湖面面积119.04平方公里,分属苏州下属的相城区、苏州工业园区和昆山市管辖。阳澄湖平均水深仅有不到2米,蓄水量1.67亿立方米,形状不规则,可被
  • 程序员程序员(Programmer,Computer Programmer或Coder),它可以指在程序设计某个专业领域中的专业人士,或是从事软件撰写,程序开发、维护的专业人员。但一般Coder特指进行编写代码的编码
  • 贝尔维尤广场贝尔维尤广场(德语:Bellevueplatz)是瑞士苏黎世的一个广场,开辟于1856年,以其北侧原贝尔维尤大酒店命名。贝尔维尤广场是该市一处交通枢纽,2路、4路、5路、8路、9路、11路和15路电
  • 格伦瓦德之战雅盖沃(瓦迪斯瓦夫二世·雅盖沃),该同盟的最高统帅 ”,后来波兰的编年史作者将格伦瓦德解释为一致的绿林之意,而在立陶宛,这个地方被译为。德意志人将他们的军队部署在坦能堡,并根