美文网首页
算法-绪论

算法-绪论

作者: Better_World | 来源:发表于2017-07-13 16:26 被阅读0次

    关于如何学习算法,正如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)

    小结:

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

    相关文章

      网友评论

          本文标题:算法-绪论

          本文链接:https://www.haomeiwen.com/subject/szawhxtx.html