算法导论 第一部分

  算法导论中涉及很多分析,需要有一定的数学基础。本人数学很烂,以下为笔记,如果有什么错误,还望各位不吝赐教~~(^_^)

第二章,算法基础,以插入排序为例,演示了算法的分析过程,同时介绍以归并排序为例,介绍并分析了分治算法

  • 插入排序,最好情况下,数据已经有序,时间复杂度O(n),最坏和平均情况是O(n^2)
  • 归并排序,分治算法,最坏和平均情况是O(n*lgn)
  • 分治算法, 分解--解决--合并。不是所有的分治算法都会比暴力算法更省时间。比如,第4章举的矩阵乘法的例子。

第三章,函数的增长。主要是介绍了界和一些常用函数的性质

  • 界  (a)例子 2*n^2=O(里面加个H)(n^2)  (b)例子 n=O(n^2)  g(n)是f(n)的上界  (c)例子 n^2=omega(n)  g(n)是f(n)的下界

第四章,分治策略,例子+递归式的解法

  • 例子:最大子数组,矩阵乘法。最大子数组,要么出现在左半部分,要么出现在右半部分,要么出现在包含分界点的地方。矩阵乘法,直接分界并不能减少时间复杂度,要用Strassen算法
  • 递归式的解法:代入法、递归树法、主方法。代入法,猜一个,代进去验证一下。递归树法,所有的递归的路径都能画成一棵树,通过将递归展开成树分析。主方法。  

第五章,概率分析和随机算法。以雇佣问题为例,介绍了概率分析、随机算法和指示器随机变量。(PS:后面的分析大量的用到了相关的内容)

  • 概率论中有用到指示器随机变量,印象中是,二项式分布那块的(虽然我的印象,从来没有准过,但有用过,不是印象)。。就是一个boolean变量,标识事情发生或不发生
  • 随机算法,要么就在输入之前先做处理,处理成随机的。要么就在算法里面处理成随机的。算法里的随机处理,产生另一个随机的优先级数组,原数组按照优先级数组排序。据说优先级数组的范围1~n^3比较好,不容易产生重复数字。1~n听起来会很好处理,但是,会很容易产生重复数字。对整数排序,基数排序能在O(n)内解决。


总结:大致是用一些简单的例子,引出了很多后面要用到的内容。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值