关于算法学习方法的讨论

  这是上一封信《自主性学习,用实践开路》的兴许讨论。

【来信】

  老师,关于算法和数据结构我还是有点疑惑。你说要通过实践。我如今看到数据结构的图了,算法学习我借了刘汝佳的算法入门那本书,数据结构我把书中的代码在电脑上敲了出来,而且搞懂了第一行代码,也算是记住了思想。

可是有时候敲完后会认为模糊。

算法在看动态规划,对于动态规划里面提到的“状态”我还是不能非常好的理解。我想问问老师。假设长时间过后数据结构和算法的思想忘了怎么办。怎么学习数据结构和算法才算是正确的方法。学了将近20天的数据结构和算法,逐渐感觉到了别人所说的枯燥,究竟怎样安排学习这类知识的时间。问下,老师有没有算法的书籍推荐和比較明白的学习方法传授。谢谢老师。

【回复:逐点讨论】

老师,关于算法和数据结构我还是有点疑惑。  
你说要通过实践,我如今看到数据结构的图了, ——你该告诉我你实践到什么程度了。
算法学习我借了刘汝佳的算法入门那本书, ——是《算法竞赛入门经典》吗?这本书是好书,当作应用算法和数据结构解决这个问题的參考书就可以。

可是若你正在学习数据结构期间,却将之当主线。我认为不妥。

数据结构我把书中的代码在电脑上敲了出来。 ——我怀疑你用的材料不当了。数据结构中算法的描写叙述假设直接就用高级语言写出来了,非常不利于你进入“抽象”的层次。这样学来的数据结构和算法,仅仅能照猫画虎。眼前没猫。即使有虎,也画不出虎。
而且搞懂了第一行代码, ——疑是“每一行代码”的笔误。看代码假设是以行作为单位。那学习效果可想而知了。

要先知总体,再一大块一大块,再看大块中的小块。

也算是记住了思想。 ——假设算法思想是记住的。忘了就一点都不奇怪了。
可是有时候敲完后会认为模糊。 ——由于你始终是仅仅见树木。不见森林。这影响了你学习的速度和感受。
算法在看动态规划, ——如今我感觉,你是将算法和数据结构分开学。算法学习的初期,算法能够有两种:一种算法是与数据结构紧密联系的。比如。各种基本数据结构上的基本操作。属于这一种。还有一种,体现计算机求解问题方法层面的算法。比如动态规划、贪心等。这两者间有交叉。基于对你学习路线已有的了解。我建议将这两种分开一些,先第一种。后另外一种。
对于动态规划里面提到的“状态”我还是不能非常好的理解。 ——再找些同类的书,这本书上的说法没有明白,再一本的说法可能就对你胃口了。

用好学校的图书馆。

我想问问老师,假设长时间过后数据结构和算法的思想忘了怎么办。 ——忘了太正常了。理想的结果就是“得意而忘形”。

而你前面描写叙述的,试图是“得形而记意”。改变学法为要。比如排序算法,拿出一副扑克来,说用高速排序。就严格照其思想。手工玩出排序过程。这个玩的过程都能够不去考虑代码该怎么写。玩熟练了,能够用某种语言写一敲代码。其它的算法,也要能够摆脱详细代码形态。以此去得意。这样学出来的。是不easy忘记的。

关键是,做到了算法与语言无关。

怎么学习数据结构和算法才算是正确的方法。 ——以上提示了一些,但也仅限于我的感觉。

而对于你自己,要在学法上下功夫。你有更适合你自己的学法。仅仅是没有想到去自己发现。

学了将近20天的数据结构和算法。逐渐感觉到了别人所说的枯燥。 ——这些知识实际是非常生动的,是学法不当所致。嘴里喊着枯燥。学这玩意就是活受罪。非常多人就是这样进入到冬眠状态的。
究竟怎样安排学习这类知识的时间。 ——感觉烦了累了就歇息、调整一下,不要强求。不要指望过一遍就将知识掌握到一种非常精通的程度,不可能。

多轮次地学,每一轮,都深入一点点。初始的轮次,仅仅求能学点皮毛就可以,仅仅求能解决点最简单的问题就可以,不必指望一次学习,就能把竞赛类的题轻松做下来。刚会个三步上栏,就要打NBA,那不是自找不痛快吗?做不来的,放在那儿等着回头就收拾。用轻松的心态去学习,而不要这样焦燥。

问下。老师有没有算法的书籍推荐和比較明白的学习方法传授。 ——现阶段。你就用好手边的书就可以,而学习方法,我提示了一些。最适合你的方法,诞生在你自己的探索过程里。
================= 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章的分类文件夹(不定期更新) ==|
|== C++ 课堂在线专栏  贺利坚课程教学链接(分课程年级) ==|
|== 我写的书——《逆袭大学——传给IT学子的正能量》    ==|
===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =====
时间: 2024-12-12 03:07:04

关于算法学习方法的讨论的相关文章

显示器电子枪显示一个汉字,画完所有的笔画,求最短路径算法。求讨论

 如题. 个人觉得有两种思路,第一是归结为旅行商问题,用分支限界法或者其它方法求解.假设一个汉字有n划,就对应2n个点对.每画一划,就少了2个选择,所以总共的解空间大小是2n*2(n-1)*...*2. 第二是归结为中国邮递员问题,走完一个连通图的所有边,怎么走路径最短,通过添加一些多余的边,也是能得到最优解的.但是汉字可能不是一个连通图,怎么办?也许可以先通过计算汉字各划的位置关系,将其扩展为连通图? 感觉第一种方法要简洁一些,便于处理. 请问大家思路?

机器学习算法的R语言实现(二):决策树

1.介绍 ?决策树(decision tree)是一种有监督的机器学习算法,是一个分类算法.在给定训练集的条件下,生成一个自顶而下的决策树,树的根为起点,树的叶子为样本的分类,从根到叶子的路径就是一个样本进行分类的过程. ?下图为一个决策树的例子,见http://zh.wikipedia.org/wiki/%E5%86%B3%E7%AD%96%E6%A0%91 ? 可见,决策树上的判断节点是对某一个属性进行判断,生成的路径数量为该属性可能的取值,最终到叶子节点时,就完成一个分类(或预测).决策树

提升方法 - 2 - 前向分布算法和提升树

声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址). 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了弄懂其中的内容查阅了很多资料,所以里面应该会有引用其他帖子的小部分内容,如果原作者看到可以私信我,我会将您的帖子的地址付到下面. 3,如果有内容错误或不准确欢迎大家指正. 4,如果能帮到你,那真是太好了. 上一节讲解了Adaboost算法,下面我们要通过Adaboost的另一种解释引申到前向分布算法,进而通过

机器学习算法的R语言实现(二):决策树算法

1.介绍 ?决策树(decision tree)是一种有监督的机器学习算法,是一个分类算法.在给定训练集的条件下,生成一个自顶而下的决策树,树的根为起点,树的叶子为样本的分类,从根到叶子的路径就是一个样本进行分类的过程. ?下图为一个决策树的例子,见http://zh.wikipedia.org/wiki/%E5%86%B3%E7%AD%96%E6%A0%91 ? 可见,决策树上的判断节点是对某一个属性进行判断,生成的路径数量为该属性可能的取值,最终到叶子节点时,就完成一个分类(或预测).决策树

深度解读最流行的优化算法:梯度下降

深度解读最流行的优化算法:梯度下降 By 机器之心2016年11月21日 15:08 梯度下降法,是当今最流行的优化(optimization)算法,亦是至今最常用的优化神经网络的方法.本文旨在让你对不同的优化梯度下降法的算法有一个直观认识,以帮助你使用这些算法.我们首先会考察梯度下降法的各种变体,然后会简要地总结在训练(神经网络或是机器学习算法)的过程中可能遇到的挑战.(本文的中文版 PDF 下载地址) 目录: 梯度下降的各种变体 批量梯度下降(Batch gradient descent)

浅谈MySQL索引背后的数据结构及算法

摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持 也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等.为了避免混乱,本文将只关注于BTree索引,因为这是 平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论. 文章主要内容分为四个部分. 第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础. 第二部分结合MySQL数据库中

机器学习十大算法(一)

文章来源:https://www.dezyre.com/article/top-10-machine-learning-algorithms/202 本人自行翻译,如有错误,还请指出.后续会继续补充实例及代码实现. 根据最近的一项研究,在未来10年,机器学习算法将取代全球25%的工作机会. 随着大数据的快速增长和编程工具(如Python和R-machine学习)的可用性正在成为数据科学家的主流存在. 机器学习应用程序是高度自动化和自修改,随着时间的推移,随着他们学习更多的数据,最小的人工干预.

lanczos算法及C++实现(二)实对称阵奇异值分解的QR算法

本文属作者原创,转载请注明出处: http://www.cnblogs.com/qxred/p/qralgorithm.html 首先推荐两个参考文献 https://www.math.kth.se/na/SF2524/matber15/qrmethod.pdf http://people.inf.ethz.ch/arbenz/ewp/Lnotes/chapter4.pdf 1. 基本的QR算法 我们先讨论一般对阵矩阵的QR算法,再讨论对称三对角阵的QR算法 给定一个实对称阵X,假设其特征值分解

机器学习最常用优化之一——梯度下降优化算法综述

转自:http://www.dataguru.cn/article-10174-1.html 梯度下降算法是机器学习中使用非常广泛的优化算法,也是众多机器学习算法中最常用的优化方法.几乎当前每一个先进的(state-of-the-art)机器学习库或者深度学习库都会包括梯度下降算法的不同变种实现.但是,它们就像一个黑盒优化器,很难得到它们优缺点的实际解释.这篇文章旨在提供梯度下降算法中的不同变种的介绍,帮助使用者根据具体需要进行使用. 这篇文章首先介绍梯度下降算法的三种框架,然后介绍它们所存在的