算法导论<1、课程简介与算法分析>
来源:互联网 发布:淘宝网涂料 编辑:程序博客网 时间:2024/05/20 21:21
1、学习伪代码;
伪代码中的一些约定:
- 缩进表示块结构;eg:第1行开始的for循环体由2~8行组成;
- while、for、repeat-until等循环结构以及if-else等条件结构与c、c++、Java、Python和Pascal中的结构有类似的解释;for循环迭代增加用to,迭代减少用downto;
- //表示注释;
- i=j=e等价于先j=e,然后i=j;赋值语句可以用符号←表示,x←exp表示将exp的值赋给x,其中x是一个变量,exp是一个与x同类型的变量或表达式(该表达式的结果与x同类型);多重赋值i←j←e是将表达式e的值赋给变量i和j,这种表示与j←e和i←e等价
- 变量是局部于给定过程的,若无显示说明不用全局变量;
- 复合数据通常被组织成对象(由属性组成);eg:A.length
- 按值吧参数传递给过程:被调用过程接收其参数自身的副本;
- return语句立即将控制返回到调用过程的调用点,允许在单一的return语句中返回多个值;
- 布尔运算符“”and“和“or”都是短路的。
- 关键词error表示已被调用的过程情况部队而出现了一个错误。
2、运行时间:
2.1、取决于输入规模(eg:已经排好序)
2.2、取决于输入的大小size(eg:一些参数)
2.3、运行时间的上界限;
3、情况分析:
3.1、最坏情况分析:T(n)=max time on any input size n;
3.2、平均情况分析:T(n)=expected time over all inputs of size n;加权平均;
3.3、最好情况分析:(bogus)一般不这么考虑;
4、渐进分析asymptotic analysis:
忽略那些依赖于机器的常量,不去检查实际运行的时间,而是关注运行时间的grouth增长(增长率或增长量级),也就是只考虑公式里面最重要的项。
渐进符号theta(弱符号)----->写个公式,弃掉他的低阶项,并且忽略前面的常数因子。
*清楚时间复杂度和空间负复杂度以及如何计算。
5、排序算法1:
循环不变性:
eg:插入排序
6、排序算法2:
eg:归并排序(略)
阅读全文
1 0
- 算法导论<1、课程简介与算法分析>
- 麻省理工大学公开课笔记:算法导论(二)——课程简介及算法分析
- 课程简介及算法分析
- 【[第1集] 课程简介及算法分析 】
- 数据结构与算法导论之入门简介
- 麻省理工学院开放课程:算法导论
- 课程主要算法简介
- 算法设计与分析课程Part1笔记(1)
- 算法分析与设计课程(1):Add Two Numbers
- 算法分析与设计课程作业第一周#1
- 算法分析与设计课程作业第二周#1
- 算法分析与设计课程作业第三周#1
- 算法分析与设计课程作业第四周#1
- 算法分析与设计课程作业第五周#1
- 算法分析与设计课程作业第六周#1
- 算法分析与设计课程作业第七周#1#2
- 算法分析与设计课程作业第八周#1
- 算法分析与设计课程作业第十周#1
- 线程同步3 ------ Linux进程间通信——使用信号量
- 使用自己安装的Maven插件
- 浮动窗口(Android)
- Linux中nmon的安装与使用
- spring data 复杂的查询,不用写sql
- 算法导论<1、课程简介与算法分析>
- 爬虫,可用于增加访问量和抓取网站全页内容
- unity平台预处理
- AI将改变工作方式,社会要学会适应!
- oracle--9.集合运算
- RabbitMQ入门-10-2(整合spring-发送同步消息注解实现)
- 如何用一行CSS制作响应式HTML网页
- Docker Quickstart Terminal启动后报错问题解决
- Linux网络编程