- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(算法内容
四,考试内容
DC问题的时间复杂度,稳定性,个别代码:插入排序,归并排序,堆排序,快速排序,计数排序,基数排序,桶排序
DP问题:优化问题的四个步骤,0-1背包
Greedy(贪心算法):分数背包,0-1背包,霍夫曼编码
图的算法:3+1算法,具体是单源点最短路径(Dijkstra、Bellman-Ford),每对结点间最短路径(Floy算法),johnson算法(这个算法只要知道基本思想即可)(图的算法,3+1,单源最短路径:迪杰斯特拉,Bellman-Ford;每队节点间的最短路径:弗洛伊德算法johnson算法)
收索算法:回溯,N皇后问题,分支和边界算法
NP-complete:NP完全问题
智能收索(邻域收索):基本思路,算法分析
算法设计:分治,动态规划,收索
四,考点分析
插入排序:插入排序的计算时间 T(n):
最好情况(输入数组已经是有序的):计算时间是n 的线性函数;最坏情况(输入数组是逆序的,即降序):计算时间是n 的二次函数。原地排序(in place),空间开销为常数。
2.分治法:要求解问题P:
-- 分:将问题P分解为规模更小的子问题 P1, P2, …, Pk。
-- 治:递归求解这些子问题。
-- 合并:将子问题P1, P2, …, Pk的解合并为问题P的解。
3.归并排序:(1)利用分治策略,可以得到一个归并排序算法
-- 分:将n个元素分为两个n/2大小的子序列。
-- 治:分别将两个子序列排序。
-- 合并:将两个有序子序列合并,得到完整的有序序列
(2)归并排序的伪代码:
(3)归并排序简单总结:
归并排序
MERGE-SORT(A,p,r)
MERGE(A,p,q,r)
归并排序分析-Θ(nlgn),需要的辅助存储空间为Θ(n).
--递归树法
--展开法
--数学归纳法
渐近分析
O-表示法
主方法:(考计算题)提供了一种快速求解下述形式递归式的方法:
T(n) = a T(n/b) + f(n)
其中a、b为常数,a ≥ 1 且 b 1 ,f(n) 为一渐近正函数
递推式的三种基本情况:
主定理思想:
CASE 1: 开销从根到叶子等比递增。叶子开销占总体开销的固定比例部分。
CASE 2: (k = 0) logbn 层中的每层开销基本相当。
CASE 3: 开销从根到叶子等比递减。根的开销占总体开销的固定比例部分。
概要重述:目前为止:
--插入排序 计算时间为 Θ(n2); 原地排序(in place)
--归并排序 计算时间为 Θ(n lg n);需要的辅助存储空间为Θ(n).
后续:
--堆排序 计算时间为 Θ(n lg n);原地排序(in place).
--快排 平均计算时间为 Θ(n lg n) ;最实用(因此也是最广泛应用)的排序算法。
--Sorting in linear time.
堆排序:具有n个元素的堆,其高度为:
(1)MAX-HEAPIFY 调整堆以使其满足大顶堆的性质。O(log n)
(2)BUILD-MAX-HEAP 基于无序数组构建大顶堆。Θ(n)
(3)要完成排序,首先将数组转换成大顶堆,然后不断地取出根元素(最大元素),并利用MAX-HEAPIFY调整剩余元素。 Θ(n log n),堆排序是原地排序(in place). 不稳定.
堆排序伪代码:
优先级队列:(1)优先级队列: 一种包含若干元素集合S 的数据结构,每个元素关联一个称为关键字(key)的值。
有两种优先级队列:最大优先队列与最小优先队列。我们以如何实现最大优先队列为例来讲解,它基于大顶堆实现。
快速排序:
(1)分治算法, 原地排序 (与插入排序类似,与归并排序不同),非常实用 (需要精心实现),-可认为是一个随机拉斯维加斯算法的实例,最坏情况下的计算时间: Θ(n2),
平均计算时间: Θ(nlogn),Θ(nlogn) 量级下的常数系数比较小
(2)要对n个元素的数组完成快排:
--分: 将原数组围绕某划分元素 x 划分为两个子数组,使得前面子数组中元素≤x≤后面子数组中元素
--治: 递归对子数组进行排序
--合并: 不需任何工作.
时间复杂度:快排的最坏情况:输入数据是有序或逆序的,基于最小或最大元素进行划分,这样划分后的一侧总是没有元素导致
--T(n) = T(n - 1) + T(0) + Θ(n)
文档评论(0)