DSA:DataStructure + Algorithm
课程
https://dsa.cs.tsinghua.edu.cn/~deng/ds/dsacpp/
概论
- 什么是计算
- 评判DSA优劣的参照(直尺)
- 度量DSA性能的尺度(刻度)
- DSA性能度量的方法
- DSA的设计及其优化
计算
算法
特定计算模型下,旨在解决特定问题的指令序列
- 输入:待处理的信息 (问题)
- 输出:经处理的信息 (答案)
- 正确性:的确可以解决指定的问题
- 确定性:任一算法都可以描述为一个由基本操作组成的序列
- 可行性:每一基本操作都可实现,且在常数时间内完成
程序未必是算法,如还为证明Hailstone的有穷性
好算法
- 正确
- 符合语法,能够编译、链接
- 能够正确处理简单的输入
- 能够正确处理大规模的输入
- 能够正确处理一般性的输入
- 能够正确处理退化的输入
- 能够正确处理任意合法的输入
- 健壮:能辨别不合法的输入并做适当处理,而不致非正常退出
- 可读:结构化+准确命名+注释+...
- 效率(课程重点):速度尽可能快;存偷空间尽可能少
度量
-
正确性:算法功能与问题要求一致?数学证明?可不那么简单...
-
成本:运行时间+所需存储空间 如何度量?如何比较?
稳妥起见,在规模同为n的所有实例中,只关注最坏(成本最高)者
图灵机模型
RAM模型
基本操作的次数–>计算时间
分支转向的原理是goto
bigO、bigΩ、bigΘ
至今没有找到多项式时间算法解的一类问题,称之为NP类问题
动态规划
标签:正确处理,算法,概述,基本操作,度量,输入,DSA 来源: https://www.cnblogs.com/BF3WKD/p/16619913.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。