算法该怎么学?感觉好难

如题所述

很多人都会说"学一样东西难",一开始我也觉得很大程度是因为每个人的智力水平等等不可改变的因素. 但是后来我发现,有一个东西也很能决定一个人是否会觉得一样东西难学,那就是理解方式.

一件事物通过不同的途径让一个人理解效果差异是很大的.就比如说数学里面教你一个圆,有的人看到一个圆就能很快明白什么是圆,有的人却非得看到x^2+y^2 = r^2这种式子才有感觉,甚至有的人需要"到定点距离为定长的点集"这种描述才能理解. 那这个不一定是说谁的智力水平更高,而是因为他们对不同形式事物的敏感程度不同.


回到算法上来.算法本质是一种数学.他是抽象的操作集合.(看这么说你可能会觉得不知所云,但是如果我说他只是一种解决问题的办法可能就好理解). 所以很多书,论文,或者很多老师教的都是一种数学描述的算法,这样子的算法就我个人而言相当难理解,看了就想到代数高数什么的.. 但是如果找一个图文并茂的解释,或者找个人一步一步把一个算法给你我比划一下,我立刻就能理解. 说白了,就是你一定要找很多很多不同的角度来尝试接受一种东西,你一定可以找到一种你相当敏感的角度,用这个角度学习你就会游刃有余. 智力因素并没有太大影响的.


具体点说,你可以试试这几种不同的角度.

    直接看数学形式的算法.我个人最无法接受的形式,但是有人很喜欢..例子就是算法导论上面那种描述.

    听一般语言描述,最理想是找一个明白的人,给你用通俗语言讲讲原理.这个不错,很多我是这么理解的

    图形理解,叫理解的人给你画插图,分布图,结构图等等,来分解一个算法,找到他的思路.说到图,有一个人的博客这方面做得很好:matrix67.

    程序理解.找到一种算法的实现程序,对着程序理解,可以尝试分布运行,观察一下变量的变化,这样来理解算法.

    实在太难的算法,可以边写边改来理解.当时我学习插头dp的时候就是这样,不论怎么总是一知半解,最后硬着头皮写了一遍,改了很久,但是改过了的时候,也就真的明白了是怎么回事了.


也许还有别的什么办法,因为人对事物的接受角度实在是太多了.多想想你平时学习什么比较容易,找出你最敏感的理解方式就行了.


有感而发说的一些东西,不一定都是正确的,只供参考,欢迎指正.

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-06
我觉得那是因为理解差异导致的

所谓算法
其实有难有易
容易的算法其容易程度让你觉得可笑
比如
计算两个人的口袋里一共有多少钱
设置3个变量
一个存放a的钱数
另一个存放b的钱数
将这2个变量的值相加
和存放在第3个变量中
(是不是可笑?但这就是算法)

实际上
算法就像你教一个白痴去做一件事情
你不能下一个指令就算完成
你必须把
一步一步的操作、如何开始、如何结束、如何取值、如何计算、如何存储等等
都教给他
这就是“算法”的含义

有的算法确实很难
其实际意义是追求高效率、高速度

我比较赞同
阿库嘁哒巴达木
的回答
第2个回答  2013-06-06
个人建议最好从实例入手,比如地图,迷宫之类的
第3个回答  2013-06-06
重在理解思想,多对模型进行推演

零基础大学生该如何学算法?
掌握数据结构知识,如数组、链表、栈、队列等,是学习算法的基础。同时,了解时间复杂度、空间复杂度、递归与迭代等概念,有助于理解算法效率与运行机制。第三步:接触初级算法 在打好基础后,可开始学习初级算法,如线性搜索、二分搜索、冒泡排序、快速排序与归并排序等。这些是入门级算法知识,需深入学习...

搞编程的我是个算法渣,怎么样能很快的提升算法水平?有什么必要的或者非...
3:学习常用的算法思想,如分治、贪心、动态规划、回溯等等。学习之后自己动手找一些题目敲敲代码,刚开始可以按照答案敲,慢慢要丢开答案自己来组织思路了。4:要熟悉分析算法的复杂度,因为接着要开始思考代价问题了,包括时间和空间的开销。其实用谁的书都无所谓,只要内容齐全了,而你自己阅读起来接受得...

数学物理方法好难啊,怎么学??
回答:其实就是解决特殊方程的算法,好像一共就那么6类吧,每一类做三道题左右就可以驾驭这种方法了,要理解就不难啦

怎么样学习c语言算法才是有效的学习?
尽量自己完成教材中的练习,这是对你学习的检验。其它练习。扩展知识面很有用。4、复习。这点对一般人很有效,如果你是天才那就算了~~5、一步一台阶,比如:先学C语法再学算法、WIN程序设计。6、坚持再坚持。C\\C++给人的感觉是易会不易精,精通很难啊,但是最重要的二个字是“坚持”。如果你是...

怎么刷算法题?看这篇就够了,文末有干货福利
算法学习虽难,但并非只凭智商。理解是关键,通过科学方法训练,算法能力可习得。避免急功近利,循序渐进是最佳路径。首先,意识到算法能力并非智商独占,而是可以通过后天训练提升。其次,难度设定要合理,先从基础开始,逐步提升,确保每个阶段都能稳固掌握。按照算法分类选择题目,如链表、二叉树、动态规划...

怎么学好数据结构与算法,好难啊
要学算法,先练好递归,这会对你深入学习其他算法有很大的帮助。树形结构是数据结构中较难的部分,也是数据结构的基础,主要靠练。还有就是,不要总是学习理论,合上书本认真地把算法用代码和实现是最重要的。不要背代码,没用的,注重理解。刚开始会有些不习惯,学得多了就好了。--- 内容出自http...

怎样学好数据结构与算法
2、 建立良好的学习数学习惯。习惯是经过重复练习而巩固下来的稳重持久的条件反射和自然需要。建立良好的学习数学习惯,会使自己学习感到有序而轻松。高中数学的良好习惯应是:多质疑、勤思考、好动手、重归纳、注意应用。学生在学习数学的过程中,要把教师所传授的知识翻译成为自己的特殊语言,并永久记忆在...

如何学习算法
学习算法时,首先需要掌握编程语言,比如Java。通过实际编写小程序,如排序算法和汉诺塔问题,可以加深理解。接着,学好数据结构至关重要,尤其是队列、栈、树等。如果想深入理解图算法,这些基础知识必须熟练掌握。数据结构的书籍众多,选择一本适合自己的即可,CSDN上有许多高手分享相关知识。《算法导论》是...

如何学好算法设计与分析
1、学习基本算法:首先学习数据结构和算法的基本知识,如数组、链表、树等常用数据结构以及查找、排序、字符串匹配等基本算法。2、看经典教材:《算法导论》、《算法4》、《数据结构与算法分析》等经典教材可以帮助学生系统性地学习算法设计与分析。3、做练习题:充分做练习题和模拟考试,可以帮助巩固理解和...

做为一个初学者,如何才能学好算法呢,感觉自己很菜
凡事都讲究动机,你学习算法的目的是什么呢?目的不同,学法不同侧重不同。如果你是准备跳槽,以面试为目的,可以先从cracking the coding interview入手,题目是按照链表,树图,递归这种章节安排的,每章都有题目,难度适中,第一遍自己写不出来很正常,画图分析,然后再做第二遍,第二遍就快很多,理解...

相似回答