- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法分析(复习版)
分治法:将一个复杂的问题分解成若干个规模较小、相互独立,但类型相同的子问题求解;然后再将各子问题的解组合成原始问题的一个完整答案,这样的问题求解策略就叫 分治法
快速排序算法,归并排序算法,二分搜索算法,还有汉诺塔问题等都是用分治法求解的。
一个问题能够用分治法求解的要素是:
第一,问题能够按照某种方式分解成若个规模较小、相互独立且与原问题类型同的子问题;
第二,子问题足够小时可以直接求解;
第三,能够将子问题的解组合成原问题解。
最大最小元问题
在一个元素集合中寻找最大元素和最小素的问题,即 在互不相同的 n个数 {x 1 , x2 ,xn } 中,找出最大和最小的数。
二分搜索
在有序表(已按关键字值非减排序)中搜索给定元素的问题。条件:
该问题的规模缩小到一定的程度就可以容易地解决;
该问题可以分解为若干个规模较小的相同问题;
分解出的子问题的解可以合并为原问题的解;
分解出的各个子问题是相互独立的。
二叉判定树
二分搜索过程的算法行为可以用一棵二叉树来描述。通常称这棵描述搜索算法执行过程的二叉树为二叉判定树
分治法求解排序问题思想 :按某种方式将序列分成两个或多个子序列,分别进行排序,再将已排序的子序列合并成一个有序序列。
合并排序和快速排序是两种典型的符合分治策略的排序算法。
合并排序:把两个或多个有序序列合并成一个有序序列。
两路合并排序
? 最好时间复杂度: O(nlogn )
? 最坏时间复杂度: O(nlogn )
? 平均时间复杂度:O(nlogn )
? 辅助空间: O(n )
快速排序采用一种特殊的分划操作对排序问题进行分解,其分解方法是 :在待排序的序列(K0 ,K1,…, K n-1 )中选择一个元素作为 分划元素,也称为主元。不妨假定选择Kα( 处于位置j)为主元。经过一趟特殊的分划处理将原序列中的元素重新排列,使得以主元为轴心,将序列分成左右两个子序列。主元左侧子序列中所有元素都不大于主元,主元右侧子序列中所有元素都不小于主元。
? 最好时间复杂度:O(nlogn)
? 平均时间复杂度:O(nlogn )
? 最坏时间复杂度:O(n2)
? 辅助空间:O(n )或O(logn)
合并排序VS快速排序
1、问题分解过程:
合并排序 —— 将序列一分为二即可。
快速排序—— 需调用Partition函数将一个序列划分为子序列。
2、子问题解合并得到原问题解的过程:
合并排序 —— 需要调用 Merge函数来实现。(Merge函数时间复杂度为 O(n)
快速排序 ——一旦左、右两个子序列都已分别排序,整个序列便自然成为有序序列。(异常简单,几乎无须额外的工作,省去了从子问题解合并得到原问题解的过程)
选择问题是指在 n 个元素的集合中,选出某个元素值大小在集合中处于第 k 位的元素,即所谓的求第k小元素问题。
矩阵相乘
矩阵用二维数组存储,相乘的时间复杂度为 Θ (n 3 )
分治法的思想
分治法在 每一层递归 上都有三个步骤:
? 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题;
? 解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题;
? 合并:将各个子问题的解合并为原问题的解。
贪心法是通过 分步决策的方法来求解问题的。
贪心法每一步上用作决策依据的选择准则被称为最优量度标准(局部最优解) 。
在根据最优量度标准选择分量的过程中,还需要使用一个 可行解判定函数 可行解判定函数 ( 约束条件) 。贪心策略并不是从整体上加以考虑的,它所做出的选择只是当前看似最佳选择,必须进一步证明该算法最终导致问题的一个整体最优解。
贪心法一般具有 2 个重要的性质:贪心选择性质 和 最优子结构性质 。
贪心选择性质:是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。这是贪心算法可行的 第一个基本要素,也是贪心算法与动态规划算法的主要区别。
最优子结构性质:一个问题的最优解包含其子问题的最优解。问题的最优子结构性质是该问题可用动态规划算法 或 贪心算法求解的关键特征 。
背包选择最优量度标准
选取单位重量价值最大的物品装包 , 即每次选 p i / w i 最大的物品装包标准最合理 ,得到最优解.(正确性有待证明)
基本步骤 :
1 、首先计算每种物品 单位重量的价值 Pi/ Wi 并按非增次序进行排序;
2 、然后依 贪心选择策略,选择 单位重量价值最高的物品 装入背包。依此策略一直地进行下去,将尽可能多的物品全部装入背包,直到将背包装满。
3 、若装入某件物品时, 不能全部装下 ,而背包内的物品总重量仍未达到 W ,则根据背包的剩余载重,选择单位重量价值次高的物品并尽可
您可能关注的文档
- 淘宝钻展素材PPT样本.ppt
- 1新课程知识.doc
- 最强性价比处理器XeonE3.doc
- 团日活动计划书内容.doc
- MySQL中MyISAM引擎与InnoDB引擎性能比较.doc
- 模拟题汇总(平面向量).doc
- 二年级语文段考试卷.doc
- 安徽大学10级数字逻辑复习题解.doc
- 学出版社大学物理课后答案——第三章管靖主编.doc
- 木工班安全技术交底3333333.doc
- 2024年洛川县委宣传部一级科员招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年湖南省网岭监狱监狱民警(心理矫正类)招录1人《行政职业能力测验》高频考点、难点(含详细答案).docx
- 2024年郏县城市管理局招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年上饶市信州区人力资源和社会保障局综合管理岗(一)招录1人《行政职业能力测验》高频考点、难点(含详细答案).docx
- 2024年西乡县人民检察院五级检察官助理招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年郑州市二七区一马路街道办事处一级科员招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年萍乡市财政局综合管理岗招录2人《行政职业能力测验》高频考点、难点(含详细答案).docx
- 2024年西平县教育局一级科员招录2人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年商南县城关街道办事处一级科员招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年桐柏县教育体育局一级科员招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
文档评论(0)