算法课要考试了。没想到一晃就到学期末了。一开始是打算边上课边整理算法的学习笔记的,结果拖到现在了。如果现在复习的时候不整理,估计以后都不会整理了。那就现在整理吧。
  课本,算法设计技巧与分析。
  先来看第一章,主要内容是复杂性的概念和分析。
  为了分析算法的复杂性,提出了计算时间复杂性和空间复杂性的方法。对于时间复杂性,计数元运算操作的次数。元运算如算数运算,包括加减乘除,还有比较和逻辑运算,赋值运算,包括遍历表或树的指针赋值。对于空间复杂性,计数用到的存储单元,不包括分配用来存储输入的空间。
  复杂性是相对于问题的输入规模而言的。当输入是一个列表的时候,输入规模是列表元素的个数,而当输入为一个整数n的时候,分析中有时候把n的位数当作输入规模。
  复杂性的表示有四种符号,notation,这个单词是需要记住的。当初因为不知道notation被人鄙视了。比较常见的是O符号,它提供运行时间的一个上界,然后就是大omega符号,在运行时间的常数因子内提供一个下界。还有就是大theta符号,它给出算法运行时间增长率的一个精确描述。可以认为O类似于<=,大omega类似于>=,而大theta类似于=。还有一个是小o符号,表示低阶的关系。
  接着讨论了计算复杂性的几种方法。一个是对于迭代类的算法,计算迭代次数,而对于递归,分治之类的算法,使用递归公式,还有一种方法是计算基本运算的频度,就是选一个基本运算,然后看基本运算的次数。

  复杂度的顺序1<log(log(n)) < log(n) < n^1/2 < n < nlog(n) < n^2 < 2^n < n! < 2^(n^2).
  计算复杂性也分为几种不同的情况。算法中有条件语句的时候,那么不同的输入会使的运行时间也不同,于是就分为最坏情况,和一般情况。平均情况的分析就会涉及到概率了,这个会比较麻烦。
  计算复杂性在这一章就这些内容了,这一章还介绍了几种经典的排序算法,并给出了时间复杂性分析。接下来整理这些经典排序算法。

转载于:https://www.cnblogs.com/Frandy/archive/2012/05/12/algorithm_course_1_1.html

Algorithm Course Review(1.1)相关推荐

  1. Algorithm Course Review(7.1)

    第7章,动态规划,Dynamic Programming 又是动态规划,上一次想整理动态规划,结果还没有整理完,实际上是没有整理的动力了,整理一道题都好费时间的. 现在又要整理,这次能整理多少了?已经 ...

  2. ​使用端到端立体匹配网络进行单次 3D 形状测量,用于散斑投影轮廓测量

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 标题:Single-shot 3D shape measurement using an end-to ...

  3. 每周学算法/读英文/知识点心得分享 2.25 - 3.1

    每周一个 Algorithm,Review 一篇英文文章,总结一个工作中的技术 Tip,以及 Share 一个传递价值观的东西! Algorithm: 学习算法 本周完成五题,为自己鼓个掌!? 题目: ...

  4. 每周学算法/读英文/知识点心得分享 3.4 - 3.8

    每周一个 Algorithm,Review 一篇英文文章,总结一个工作中的技术 Tip,以及 Share 一个传递价值观的东西! Algorithm: 学习算法 题目:Generate Parenth ...

  5. 第 16 章 string类和标准模板库

    第 16 章 string类和标准模板库 16.1 string类 C语言在 string.h(C++中为cstring)提供了一系列的字符串函数. 16.1.1 构造字符串 string 实际上是模 ...

  6. 左耳听风 第二十一周

    左耳听风 第二十一周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题.阅读并点评至少一篇英文技术文章.学习至少一个技术技巧.分享一篇有观点和思考的技术文章.(也就是 Algorit ...

  7. ARTS-第二周(2019.07.08)

    每周完成一个ARTS:(Algorithm.Review.Tip.Share, ARTS) Algorithm 每周至少做一个 leetcode 的算法题-主要是为了编程训练和学习 Review 阅读 ...

  8. 微服务连载(一)微服务技术体系和六大组件

    如何学习 学习是一个人的核心竞争力,终生持续学习是别人离不开你的秘诀,如果能分享和教会别人,你的收获可能是双边甚至更多.就技术领域的学习,我还是一个在海边玩耍的小孩,时不时因为捡到一块漂亮的石头就开心 ...

  9. 如何看待软件开发 ?

    题记 今年的总结主要想和读者聊聊如何看待软件开发,回答去年年终总结文末的问题.这个话题也比较大,每个开发人员也都有自己的答案.笔者根据自己刚刚从业几年的经验说说自己的看法,作为一个开发萌新,见解略短浅 ...

最新文章

  1. Ubuntu下载地址
  2. 科学家发现大脑动态评估信息重要性机制
  3. 盘点那些让程序员目瞪口呆的Bug都有什么?
  4. 2016年湖南省第十二届大学生计算机程序设计竞赛
  5. 计算机组成原理平均cpi怎么算_2020考研 | 计算机统考408院校盘点,408考试内容难易分析...
  6. JavaScript:单选钮的事件处理
  7. 减少 JavaScript 代码量的原生技术
  8. 全球最大同性交友网站 GitHub 10 岁了!
  9. ASP.NET 班级网站-程序+配置文档
  10. 批量修改后缀名的方法,批量修改文件后缀名
  11. adcclk最大_关于STM32 在进行ADC采样时,ADCCLK时钟频率的确定
  12. 数据库设计之商品表分析2
  13. Python实现VRP常见求解算法——离散量子行为粒子群算法(DQPSO)
  14. 九章算术 八:《方程》
  15. Failed to build custom metric java.lang.NumberFormatException: For input string: “∞“
  16. 微信扫码支付notify_url回调接收通知问题
  17. 摄影测量-后方交会与前方交会,相对定向与绝对定向,光束法
  18. 微信聊天记录云储存服务怎么开通使用?
  19. Ventoy-一种更便捷的OS启动盘制作方法
  20. centos安装流量监控软件,并指定端口号监控

热门文章

  1. android ota 版本校验,OTA升级签名校验简析
  2. word python 域 操作_python实现在windows下操作word的方法
  3. efficientransac_【泡泡图灵智库】基于图割优化的RANSAC算法(CVPR)
  4. java facade dao_java – 在Facade模式中放置用于创建namedQuer...
  5. python cv release_Python cv.GetSize方法代码示例
  6. 2021广东省高考成绩查询时间,广东省高考成绩查询时间及方式公布
  7. 007_html头部元素
  8. 2000坐标转换成经纬度_ArcGIS中的坐标问题快问快答
  9. python 结构体数组 定义_一篇文章弄懂Python中所有数组数据类型
  10. Uri、URL、UriMatcher、ContentUris详解