计算机算法设计与分析期末复习

这篇具有很好参考价值的文章主要介绍了计算机算法设计与分析期末复习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

以下是我的部分算法笔记,希望可以给复习的小伙伴们参考一下:

计算机算法设计与分析期末考试,算法,贪心算法,动态规划题目:

  1. 一切合法的输入数据都能得出满足要求的结果,包括典型的、苛刻的输入数据也能够得出满足要求的结果。这个含义对应算法的(正确性)

  2. 算法要对异常情况进行适当的处理,就是算法的(健壮性)

  3. 算法操作的对象是数据,数据间的()就是数据的数据结构

         逻辑关系,存储关系,处理关系

     4.算法设计应满足以的目标包括()

正确性,可使用性,健壮性

正确性:算法能够按照规定的功能和性能正确地执行,这是最基本并且最重要的标准!

可使用性:也叫用户友好性,算法能够方便地使用

可读性:算法是易于理解的,这要求算法在逻辑上是清晰的、结构化的

健壮性:算法具有容错性,即异常处理,能够检测不合理的数据,保证程序不发生异常中断等

高效率低存储:效率是指算法的执行时间;存储是指算法执行所用的最大存储空间。算法应该在保证前面的条件下,执行时间尽可能低存储空间尽可能小

递归的概念

执行过程分为递推和回归两个阶段

直接或间接地调用自身的算法称为递归算法。用函数自身给出定义的函数称为递归函数。

边界条件与递归方程是递归函数的两个要素

全排列问题:n!

分治法的基本思想

分而治之

分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。递归地解这些子问题,然后将各子问题的解合并得到原问题的解,自底向上。

  • 所能解决的问题一般具有以下几个特征:

1.该问题的规模缩小到一定程度就可以容易地解决。

2.具有最优子结构性质

3.利用问题分解出的子问题的解可以合并为原问题的解

4.分解出的各个子问题是相互独立的

若只有前两条,则可以考虑贪心算法或动态规划

  • 主定理:

计算机算法设计与分析期末考试,算法,贪心算法,动态规划

 

  • 排序方法:   平均时间    最坏情况

       简单排序       O(n^2)         O(n^2)

       快速排序       O(nlogn)      O(n^2)

       堆排序           O(nlogn)      O(nlogn)

       合并排序       O(nlogn)      O(nlogn)

  • 二分查找:最坏情况O(logn)

  • 最大整数的乘法:传统:O(n^2)

动态规划算法

  • 动态规划算法的两个基本要素是最优子结构重叠子问题

问题的最优解包含着其子问题的最优解, 称为最优子结构性质。

递归算法求解问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算多次。这种性质称为子问题的重叠性质。

动态规划算法适用于解最优化问题,通常可按以下 4 个步骤设计: ① 找出最优解的性质,并刻画其结构特征; ② 递归地定义最优值; ③ 以自底向上的方式计算最优值; ④根据计算最优值时得到的信息,构造最优解。

  • 动态规划算法与分治法的区别:

动态规划算法与分治法类似,其基本思想是将待求解问题分解成若干子问题,先求解子问题,再结合这些子问题的解得到原问题的解。与分治法不同的是,适合用动态规划法求解的问题经分解得到的子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,以致最后解决原问题需要耗费指数级时间。

1)问题的规模缩小到一定的程度就可以容易地解决。

2)问题可以分解为若干个规模较小的相似问题,即该问题具有最优子结构性质。

3)利用该问题分解出的子问题的解可以合并为该问题的解。

4)该问题所分解出的各个子问题是相互独立的且子问题之间不包含公共的子问题。

当问题满足1,2,3,4条时采用分治法,当满足1、2、3条时采用动态规划方法

  • 矩阵连乘:最优子结构,在计算过程中,保存已解决的子问题答案。每个子问题只计算一次(时间O(n ^3),空间O(n ^2))

计算机算法设计与分析期末考试,算法,贪心算法,动态规划

  • 最长公共子序列:最优子结构性质,重叠子问题(时间O(mn))

计算机算法设计与分析期末考试,算法,贪心算法,动态规划

  • 0-1背包:最优子结构

计算机算法设计与分析期末考试,算法,贪心算法,动态规划

贪心算法

贪心算法总是做出在当前看来是最好的选择。也就是说,贪心算法并不从整体最优上加以考虑,所做的选择只是在某种意义上的局部最优选择。当然,我们希望贪心算法得到的最终结果也是整体最优的。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似解。

许多可以用贪心算法求解的问题一般具有2个重要的性质 贪心选择性质最优子结构性质

a) 所谓贪心选择性质是指(所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到)。

b) 所谓最优子结构性质是指(问题的最优解包含了其子问题的最优解)。

动态规划和贪心算法的区别 动态规划和贪心算法都是一种递推算法 ,均有局部最优解来推导全局最优解 。

不同点: 贪心算法: 1.贪心算法中,作出的每步贪心决策都无法改变,因为贪心策略是由上一步的最优解推导下一步的最优解,而上一部之前的最优解则不作保留。 2.由(1)中的介绍,可以知道贪心法正确的条件是:每一步的最优解一定包含上一步的最优解。

动态规划算法: 1.全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有最优解 2.动态规划的关键是状态转移方程,即如何由以求出的局部最优解来推导全局最优解 3.边界条件:即最简单的,可以直接得出的局部最优解

回溯法(深度优先搜索DFS)

回溯法是在包含问题的所有解的解空间树中,按照深度优先的策略,从根结点出发搜索解空间树,当算法搜索至解空间树的任一结点时,总是先判断该结点是否满足问题的约束条件。如果满足进入该子树,继续按深度优先的策略进行搜索。否则,不去搜索以该结点为根的子树,而是逐层向其祖先结点回溯。

用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含一个(最优)解

基本步骤

① 针对拨给问题,定义问题的解空间;

② 确定易于搜索的解空间结构;

② 以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。

③ 回溯法是回溯法是指(具有限界函数的深度优先生成法)。

  • 用回溯法解题的一个显著特征是在搜索过程中动态产生问题的解空间。在任何时刻,算法只保存从根结点到当前扩展结点的路径,由x[1:t]保存该路径上边的取值 。

    0-1背包 :子集树 时间o(2^n) 空间o(n)

    旅行售货员 :排列树 时间o(n!) 空间o(n)

    批处理作业调度:排列数

  • 回溯法的算法框架按照问题的解空间一般分为(子集树)算法框架与(排列树)算法框架。

用回溯法解0/1背包问题时,该问题的解空间结构为(子集树)结构。

用回溯法解批处理作业调度问题时,该问题的解空间结构为(排列树)结构。

分支限界法(广度优先搜索BFS)

分支限界法类似回溯法,也是在问题的解空问上搜索问题解的算法。一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出解空间中满足约束条件的所有解,而分支限界法的求解目标是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。

回溯法与分支限界法的区别

两者都是问题的解空间树上搜索问题解的算法。回溯法与分支限界法的的求解目标不同,回溯法的求解目标是找出解空间树中满足约束条件的所有解,而分支限界法的求解目标是找出解空间树中满足约束条件的一个解,或是在满足约束条件的

解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。

[ 二分搜索 ]

排好序数组,x跟中间的对比,再依次重复以上步骤

[ 合并排序 ]

思想:将两个有序的数组合成一个有序的数组解决问题。逐个比较a1和a2中元素大小,依次取小的存入a3

[ 快速排序 ]

将数组第一个设为基准值,i在最左边,j在最右边,两个都往中间靠。当i碰到比基准数大的数和j碰到比基准数小的数时,就将两个数交换;当i,j汇合时,此时的数和基准值交换。此时,将左边和右边分别拉出来再次快排。每次都需要j先移动,因为当最后i和j相碰时,此时所指向的是j寻找到比基准值小的数字,然后和基准值交换能确保基准值左边的都是小于基准值的数字,但是如果i先右边移动的话,最后i和j相碰时,i和j所指向的是i寻找得比基准值大的数,此时和基准值相交换,基准值左边是有一个比基准值大的数,没有达到我们需要的排序效果。文章来源地址https://www.toymoban.com/news/detail-537668.html

到了这里,关于计算机算法设计与分析期末复习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机视觉——期末复习(简答题)

    1、计算机视觉与机器视觉的区别 计算机视觉是利用计算机实现人的视觉功能,即对客观世界中三维场景的感知、加工、解释,侧重于场景分析和图像解释的理论和方法,而机器视觉更关注通过视觉传感器获取环境的图像,构建具有视觉感知功能的系统,以及实现检测和辨识

    2024年02月05日
    浏览(37)
  • 计算机组成原理 期末复习笔记

    🌱博客主页:大寄一场. 😘博客制作不易欢迎各位👍点赞+⭐收藏+➕关注   目录 前言 第一章 计算机系统概论 计算机软件的发展  计算机硬件的基本组成 计算机系统的层次结构 ​编辑 计算机的性能指标 第二章 数据表示 与 第三章 数据运算与运算器 第四章 存储系统 存储

    2024年02月07日
    浏览(71)
  • 计算机操作系统原理期末总复习

    1、现代操作系统的四个特征是什么?(4分) 并发、共享、虚拟、异步 并发 :两个或多个事件在 同一时间间隔内 发生。 共享 :内存中多个并发执行的进程共同使用系统中的资源。 2、操作系统内核的四个主要功能是什么?(4分) 内存管理、进程管理、设备管理、文件管理

    2024年02月10日
    浏览(37)
  • 计算机视觉——期末复习(填空、名词解释)

    图像文件: 指包含图像数据的文件,文件内除图像数据本身以外,还有对图像的描述信息等 距离变换: 特殊的变换,把二值图像变换为灰度图像 距离图: 如果考虑目标区域中的每个点与最接近的区域外的点之间的距离, 并用与距离成正比的灰度表示该点的灰度,那么这样

    2024年02月11日
    浏览(34)
  • 计算机组成原理期末考试试题及答案

    计算机组成原理期末考试试题及答案 一、选择题 1、完整的计算机系统应包括______。D A. 运算器、存储器和控制器 B. 外部设备和主机 C. 主机和实用程序 D. 配套的硬件设备和软件系统 2、计算机系统中的存储器系统是指______。D A. RAM存储器 B. ROM存储器 C. 主存储器 D. 主存储器和

    2023年04月11日
    浏览(37)
  • 计算机系统基础期末复习--袁春风详细版

    用“系统思维”分析问题 -21474836482147483647 (false)与事实不符?!why? 以下表达式如何呢? i2147483647 true!why? 在变化一下 -2147483647-12147483647 结果怎么样? 第二个例子 当len=0时调用sum函数时,其返回值是多少? 出现访存异常。但当len为int类型时,则正常。why? 若x和y为int类型,

    2024年02月11日
    浏览(32)
  • 【信息系统安全/计算机系统安全】期末复习(HITWH)

    信息系统安全期末复习重点总结: 目录 第一章 绪论 第二章 安全认证 填空题 第三章 访问控制 填空题 第四章 安全审计 填空题 第五章 Windows操作系统安全 填空题 第六章 Linux操作系统安全 填空题 第七章 数据库系统安全 填空题 第八章 信息系统安全测评 第九章 可信计算  

    2024年02月09日
    浏览(31)
  • 计算机组成原理期末考试知识点练习题

    全部内容包括1-8章,本篇是1-5章,后3章会在作者学习完新课后第一时间更新。(大概16号左右,请大家耐心等待) 目录 1. 计算机系统由     软件     、   硬件    两部分组成。 2. 计算机硬件系统由     存储器      、   运算器    、     控制器     、   输入设备

    2024年02月08日
    浏览(49)
  • 计算机视觉教程(第2版)1-8章期末复习

    不全面,只针对我们老师画的重点着重标记的! 第一章 绪论 1.计算机视觉 用计算机实现人类的视觉功能,对客观世界中三维场景的感知、加工和解释。 2.图像表达函数 T(x,y,z,t,λ),xyz是空间变量,t是时间变量,λ是辐射的波长。 3.图像文件格式 BMP 位图,GIF图像文件格式标

    2024年02月11日
    浏览(29)
  • SZU计算机安全导论(网络安全)线下期末考试复盘

    刚刚考完计算机安全导论,之前复习的时候发现网上几乎没有找到复习的内容,而且考试内容又很杂(差点复习不完啦),所幸这次考试内容比较简单,现在凭借印象把大题内容分享出来。 比较基础,就不细说啦(可以看看uooc里面的题目) (1)求欧拉函数值 (2)已知e,求

    2024年02月02日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包