算法设计与分析报告期末精彩试题_考试版

算法设计与分析报告期末精彩试题_考试版

ID:39452914

大小:737.57 KB

页数:25页

时间:2019-07-03

算法设计与分析报告期末精彩试题_考试版_第1页
算法设计与分析报告期末精彩试题_考试版_第2页
算法设计与分析报告期末精彩试题_考试版_第3页
算法设计与分析报告期末精彩试题_考试版_第4页
算法设计与分析报告期末精彩试题_考试版_第5页
资源描述:

《算法设计与分析报告期末精彩试题_考试版》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用文档1、用计算机求解问题的步骤:1、问题分析2、数学模型建立3、算法设计与选择4、算法指标5、算法分析6、算法实现7、程序调试8、结果整理文档编制2、算法定义:算法是指在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程3、算法的三要素1、操作2、控制结构3、数据结构算法具有以下5个属性: 有穷性:确定性: 可行性: 输入: 输出:算法设计的质量指标:  正确性:算法应满足具体问题的需求;  可读性:算法应该好读,以有利于读者对程序的理解;  健壮性:算法应具有容错处理,当输入为非法数据时,算法应

2、对其作出反应,而不是产生莫名其妙的输出结果。效率与存储量需求:效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。一般这两者与问题的规模有关。标准文案实用文档复杂性的渐近性态设T(N)是算法A的复杂性函数,使得当N→∞时有:(T(N)-T’(N))/T(N)→0那么,我们就说T’(N)是T(N)当N→∞时的渐近性态,或叫T’(N)为算法A当N→∞的渐近复杂性而与T(N)相区别。P=NP经常采用的算法主要有迭代法、分而治之法、贪婪法、动态规划法、回溯法、分支限界法分而治之法1、基本思想将一

3、个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。分治法所能解决的问题一般具有以下几个特征:标准文案实用文档(1)该问题的规模缩小到一定的程度就可以容易地解决;(2)该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质;(3)利用该问题分解出的子问题的解可以合并为该问题的解;(4)该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子子问题。3、分治法的基本步骤(1)分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题;(2)解决:若子

4、问题规模较小而容易被解决则直接解,否则递归地解各个子问题;(3)合并:将各个子问题的解合并为原问题的解。递归:直接或间接的调用自身的算法,叫做递归算法。1·期盘覆盖 用分治策略,可以设计解棋盘问题的一个简捷的算法。 当k>0时,将2^k*2^k棋盘分割为4个2^(k-1)*2^(k-1)子棋盘特殊方格必位于4个较小子棋盘之一中,其余3个子棋盘中无特殊方格。为了将这3个无特殊方格的子棋盘转化为特殊棋盘,我们可以用一个L型骨牌覆盖这3个较小的棋盘的汇合处,如下图所示,这3个子棋盘上被L型骨牌覆盖的方格就成为该棋盘

5、上的特殊方格,从而将原问题化为4个较小规模的棋盘覆盖问题。递归的使用这种分割,直至棋盘简化为1x1棋盘。2·合并排序标准文案实用文档合并排序,顾名思义,就是通过将两个有序的序列合并为一个大的有序的序列的方式来实现排序。合并排序是一种典型的分治算法:首先将序列分为两部分,然后对每一部分进行循环递归的排序,然后逐个将结果进行合并。合并排序最大的优点是它的时间复杂度为O(nlgn),这个是我们之前的选择排序和插入排序所达不到的。他还是一种稳定性排序,也就是相等的元素在序列中的相对位置在排序前后不会发生变化。他的唯一

6、缺点是,需要利用额外的N的空间来进行排序。合并排序依赖于合并操作,即将两个已经排序的序列合并成一个序列,具体的过程如下:1.申请空间,使其大小为两个已经排序序列之和,然后将待排序数组复制到该数组中。2.设定两个指针,最初位置分别为两个已经排序序列的起始位置3.比较复制数组中两个指针所指向的元素,选择相对小的元素放入到原始待排序数组中,并移动指针到下一位置4.重复步骤3直到某一指针达到序列尾5.将另一序列剩下的所有元素直接复制到原始数组末尾3·快速排序(1)在数据集之中,选择一个元素作为"基准"(pivot)。

7、  (2)所有小于"基准"的元素,都移到"基准"的左边;所有大于"基准"的元素,都移到"基准"的右边。  (3)对"基准"左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。(1)快速排序问题设a[0:n-1]是一个未排序的数组,如{0,12,45,3,6,29,4,16,77}。实现快速排序算法对该数组进行排序。(2)步骤对于输入的子序列L[p..r]分三步处理:第一步:分解(Divide)先从数据序列中选一个元素,称为基准元素。将序列中所有比基准元素小的元素都放到它的左边,比基准

8、元素大的元素都放到它的右边。在序列L[p..r]中选择基准元素L[q],经比较和移动后,L[q]将处于L[p..r]中间的适当位置,使得基准元素L[q]的值大于L[p..q-1]中任一元素的值,基准元素L[q]的值小于L[q+1..r]中任一元素的值。第二步:递归求解(Conquer)标准文案实用文档再对左右两边分别用同样的方法处理,直到每一个待处理的序列的长度为1。通过递归调用快速排序算法,分别对

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。