算法分析与设计复习大纲(全)(2)

2018-12-19 20:48

设计思想:将要求解的原问题划分成k个较小规模的子问题,对这k个子问题分别求解。如果子问题的规模仍然不够小,则再将每个子问题划分为k个规模更小的子问题,如此分解下去,直到问题规模足够小,很容易求出其解为止,再将子问题的解合并为一个更大规模的问题的解,自底向上逐步求出原问题的解。 步骤:(1)划分(2)求解子问题(3)合并

分治法的代表算法及时间复杂度:

归并排序,快速排序,最大子段和,最近对问题,这五种问题的分治算法的时间复杂度为O(nlog2n) 棋盘覆盖为O(4)

掌握归并排序和快速排序算法的算法伪代码。 归并排序:

k

算法中数组r中存储原始数据,r1在中间过程中存储排序后的数据,s指需排序数组的起始下标,t指需排序数组的结束下标。最终排序后的数据依然存储在r数组中。

快速排序:

对于待排序列(5, 3, 1, 9, 8, 2, 4, 7),画出快速排序的递归运行轨迹。 按升序排列

初始序列:5,3,1,9,8,2,4,7 第一次划分:4,3,1,2,5,8,9,7 第二次划分:2,3,1,4,5,8,9,7 第三次划分:1,2,3,4,5,8,9,7 第四次划分:1,2,3,4,5,7,8,9

排序完成,红色字体为每次划分的轴值

第5章 减治法

了解减治法的设计思想

设计思想:原问题的解只存在于其中一个较小规模的子问题中,所以,只需求解其中一个较小规模的子问题就可以得到原问题的解。

掌握使用减治法的代表问题及时间复杂度:

折半查找,二叉树查找,堆排序,选择问题,淘汰赛冠军问题,假币问题;

以上问题的时间复杂度,如果减治是每次减小为原来规模的1/2,则时间复杂度一般为O(log2n)

掌握折半查找的算法伪代码描述及具体例子的查找过程,会根据折半查找的过程创建判定树。

会根据已知数据序列创建一个二叉查找树。(P100)

掌握堆排序算法中的两种调整堆和新建堆的方法:筛选法 堆调整问题:将一个无序序列调整为堆 (1)筛选法调整堆


算法分析与设计复习大纲(全)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:园林工程实习报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: