算法-绪论

关于如何学习算法,正如Teaching Algorithms - Ricardo Baeza-Yates一文中讲解的如何教算法,我们学习者就应该明白,学习算法有两种道路:

1,按照问题类型对算法分类学习。(死板,只能解决一类问题,却不能明白算法的来源)
2,按照算法设计技术进行分类。(明白算法的来由,更符合人类的认知过程)

而我们要采取的,自然是第二种学习方法。采用这种思路的教材,最好的莫过于算法引论(豆瓣) - 豆瓣读书这本书了,但是难度过大,初学者还是推荐算法设计与分析基础(豆瓣) - 豆瓣读书这本书。如果看好了这两本书,再去抠算法导论(原书第3版) (豆瓣) - 豆瓣读书将会游刃有余了。

第一节 何谓算法?

说到定义,我们当然要先看看Wikipedia喽:
In mathematics and computer science, an algorithm is a self-contained sequence of actions to be performed.(在数学和计算机科学中,算法是一系列可执行的独立操作。)

算法

第二节 算法分析

通过分析算法的时间效率和空间效率来判断算法的效率,这从一方面反映了算法的好坏。
学会使用基本的符号O等。

第三节 基本问题

1,排序问题(稳定?基于比较?)
2,查找问题(键值)
3,字符串处理(匹配)
4,图问题(旅行商?)
5,组合问题(最短路径?)
6,几何问题(最近对?凸包问题?)
7,数值问题(数值算法)

第四节 数据结构

1,线型结构(数组,链表,字符串,栈,队列)
2,网型结构(有向图,无向图,完全图,稀疏图,邻接矩阵,邻接链表,连通图)
3,树型结构(森林,二叉树,多叉树,查找树,平衡树)
4,集合与字典(位向量,包,hash)

小结:

抓住算法的核心与设计思想,这样学习才会更牢固。对于学习算法的问题,为什么算法这么难?此贴给了我们很详细的描述。再推荐一个大佬的算法学习之路给大家,以此共勉!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值