zoukankan      html  css  js  c++  java
  • 怎么学算法的小笔记

    算法是很头疼的事情,那就说明需要很好的方法和思路了,下面有一些做法可以借鉴的。

    1.为了不忘记,需要对一系列的内容写成blog,用自己的话来表达。

    2.需要对一个问题进行抽象和本质的思考。

    3.学习如何对一个东西的分析思路,而不是被具体的步骤所迷惑。

    4.(转自MIND HACKS,未经通知,直接偷来了,希望博主饶命啊)

    其实是对具体算法这一块,如何学习的建议 

    寻找该算法的原始出处:TAOCP作为一个资料库是绝对优秀的,基础的算法只要你能想到的,几乎都可以在上面找到原始出处。查到原始出处之后(譬如一篇paper),就可以去网上搜来看了。因为最初的作者往往对一个方案的诞生过程最为了解。比如经典数据结构中的红黑树是出了名的令人费解的结构之一,但它的作者Sedgewick一张PPT,给你讲得通通透透,比算法导论上的讲法强上数倍。

    原始的出处其实也未必就都推心置腹地和你讲得那么到位:前面说过,算法设计出来了之后人们几乎是不会去回顾整个的思维过程细节的,只把直指目标的那些东西写出来。结果就又是一篇欧几里德式的文章了。于是你就迷失在一大堆“定义”、“引理”、“定理”之中了。这种文章看上去整个写得井井有条,其实是把发明的过程整个给颠倒过来了,我一直就想,如果作者们能够将整个的思路过程写出来,哪怕文字多上十倍,我也绝对会比看那一堆定义定理要容易理解得多。话说回来,怎么办?可以再去网上找找,牛人讲得未必比经典教材上的差。那倘若实在找不出好的介绍呢,就只能自己揣摩了。揣摩的重要性,是怎么说都不为过的。揣摩的一些指导性的问题有为什么要这样(为什么这是好的)?为什么不是那样(有其它做法吗?有更好的做法吗?)?这样做是最好的吗?(为什么?能证明吗?)这个做法跟其它的什么做法有本质联系吗?这个这个的区别是什么?问题的本质是什么这个做法的本质又是什么?到底本质上是什么东西导致了这个做法如此..?与这个问题类似的还有其它问题吗?(同样或类似的做法也适用吗?)等等。

     不仅学习别人的思路,整理自己的思路也是极其重要的

  • 相关阅读:
    反射
    特性(Attribute)
    简单了解Ado.net(下)
    幸福不会来敲门
    C#网络编程之服务客户模式在控制台下的简单交互
    简单了解Ado.net(上)
    简单实体框架
    自己动手写泛型List<T>
    opencv学习之路(1)
    C语言学习之文件操作(含重庆大学研究生程序设计大赛的题目和解答)
  • 原文地址:https://www.cnblogs.com/lacozhang/p/2282425.html
Copyright © 2011-2022 走看看