算法导论01课程简介及算法分析

第一:(1)伪代码附录(2)伪代码的一般规定

第二:算法描述的一般模板

第三:作业,算法导论习题集,如果做一道题超过三十分钟,就可以不用浪费时间了,即使做不出来也没有关系,可以讨论或者寻求帮助了。

算法分析是理论研究,是关于计算机程序性能和资源利用的研究。(特别关注性能)

在程序涉及方面,什么是比性能更重要的呢?

如果是在写程序,或者写代码,比性能更重要的是正确性、简洁、可维护性、成本(程序员的时间成本)、稳定性、功能性、模块化。可能都比性能更重要。可扩展性、用户友好。

既然算法和性能都没有上面这些想象中更重要,为什么我们还要学习?

原因1:有时候,性能的好坏直接决定着可行还是不可行。算法总在解决问题的最前沿。算法能够将不可能变成可行的方案。

原因2:算法是一种描述程序行为的语言,它已经成为一种广发应用于计算机科学领域的,已经被所有的实践者所采用的理论语言。它是一种让程序最为简洁的思考方式。就如同经济中的货币一样。

原因:有时候,良好的用户体验本身就是性能良好的结果。

for j=2 to A.length
    key=A[j]
    i=j-1;
    while i>0 and A[i]>key
        A[i+1]=A[i]
        i=i-1
    A[i+1]=key

循环不变式需要证明的三条性质:

 伪代码相关约定:

 

 

 

 

相关练习题:

 

 算法分析:

运行时间分析,影响因素有哪些?

第一:输入元素

第二:输入元素的规模

第三:最长运行时间

Wast case(usually)

T(n)=max Time  on any input of sizen

T(n)定义为输入规模为n时的最长运行时间。

Avevage case(sometimes)

T(n)=expected time over all inputs of size n.

T(n)就成了输入规模n之下所有可能输入的期望时间。

什么是期望时间?

就是每种输入的运行时间,乘以那种输入出现的概率。这叫加权平均。

我们如何知道每种特定输入在给定情形下出现的概率是多少?

我们可以整理出一个有关输入的统计分布的假设,否则的话,期望时间就无从谈起。

最简单的假设就是所有可能出现的情况等概率,即所谓均匀分布。

Best cast(bagas)

What is ins sort's west cast time?

什么是渐进分析?

1、忽略调那些依赖于机器的常量。

2、不是去检查实际的运行时间,而是关注运行时间的增长。

3、

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值