- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构算法综述
算法设计技巧论述
摘要:本文对几种经典算法设计进行了分析和论述。主要介绍了贪婪算法、分治算法、动态规划、随机化算法以及回溯算法,详细介绍了他们的原理、特点和算法设计的步骤,并用例子、流程图等来直观表达它们的运作方式,最后做了一下对算法的总结以及对算法设计在未来的展望。
关键词:贪婪算法;分治算法;动态规划;随机化算法;回溯算法;展望
Abstract:?This paper?analyzes and discusses?several?of the classic algorithmdesign.?Mainly introduces the?greedy algorithms,?divide and conquer algorithm,dynamic programming,?the randomized?algorithm and?backtracking algorithm,introduced?their?principle,?characteristics and algorithms?design steps,?and use examples,?such as flow chart?to?directly express?their?mode of operation,?finally made?a?summary?on the?algorithm?and?the algorithm design in?the future?to.
Keywords:?greedy algorithm;?partition algorithm;?dynamic programming;randomized algorithm;?backtracking algorithm;?Prospect
前言
随着计算机的发展,软件的强大与否越来越重要。特别是计算机技术的广泛应用,更促进了算法设计相关理论的研究与发展。其中算法是计算机学科中最具有方法论性质的核心概念,被誉为计算机学科的灵魂。算法是问题求解过程的精确描述,一个算法由有限条可完全机械地执行的、有确定结果的指令组成。指令正确地描述了要完成的任务和它们被执行的顺序。计算机按算法指令所描述的顺序执行算法的指令能在有限的步骤内终止,或终止于给出问题的解,或终止于指出问题对此输入数据无解。算法的基本特征包括又穷性,确定性,可行性。本文只是稍稍介绍一下相关的算法流程原理,望大家共勉。
贪婪算法
基本概念
贪婪算法(又称贪心算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。
最优化问题是指每个最优化问题都包含一组限制条件和一个优化函数,符合限制条件的问题求解方案称为可行解,使优化函数取得最佳值的可行解称为最优解。
具体实现
贪婪算法的关键:每步贪婪;不回溯;选择的规则非常重要,不正确的规则可能得不到结果、不优化或者不能作为贪婪的求解对象;必定有解,但是可能不会得到最优解。可以从下面四个步骤解决问题:
(1)从问题的某一初始解出发;
(2)while 能朝给定总目标前进一步 do
(3)求出可行解的一个解元素;
(4)由所有解元素组合成问题的一个可行解;
贪婪算法的基本性质有两个,分别是贪心选择性质和最优子结构性质。下面分别介绍这两个性质:
1、所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。这是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。动态规划算法通常以自底向上的方式解决子问题,而贪心算法则通常以自顶向下的方式进行,以迭代的方式作出相继的贪心选择,每作一次贪心选择就将所求问题简化为规模更小的子问题。对于一个具体问题,要确定它是否具有贪心选择性质,必须证明每一步所作的贪心选择最终导致问题的整体最优解。
2、最优子结构性质是指当一个问题的最优解包含其子问题的最优解时,就称此问题具有最优子结构性质。问题的最优子结构性质是该问题可用动态规划算法或贪心算法求解的关键特征。
举例
例子1:找零钱
一个小孩买了价值少于1美元的糖,并将1美元的钱交给售货员。售货员希望用数目最少的硬币找给小孩。假设提供了数目不限的面值为2 5美分、1 0美分、5美分、及1美分的硬币。售货员分步骤组成要找的零钱数,每次加入一个硬币。选择硬币时所采用的贪婪准则如下:每一次选择应使零钱数尽量增大。为保证解法的可行性(即:所给的零钱等于要找的零钱数),所选择的硬币不应使零钱总数
文档评论(0)