乐趣区

关于数据结构和算法:学习数据结构和算法心得

通过一段时间的数据结构与算法的学习,和学习了前人的教训,为了更好的领导本人(心愿也能帮忙到他人)之后数据结构与算法的学习,总结一下数据结构与算法学习的办法。以及举荐大家看看一套学习教程,有助于疾速入门:https://4m.cn/7MHVd
一、记住数据结构,记住算法思维(是什么)

我感觉这个是数据结构与算法学习最根底的局部。
学完之后,你至多得能给人说明确,什么是”堆栈“,什么是”均衡二叉树“等等等吧。我之所以说”记住“,是心愿这些可能造成短暂记忆,存储到你的”硬盘“里,而不仅仅在学习的时候过了一遍你的”内存“。还有一个问题,什么才叫”记住数据结构“。我感觉,第一步,数据结构最直观的货色你得记住吧(如题目背景图,来自数据结构和算法动静可视化 (Chinese))。这种直观的记忆可能在人不知; 鬼不觉中就实现了,但为了更好的记住,还需去刻意记忆和偶然的温习。第二步,你得记忆该数据结构的定义与性质与特点等等等吧。例如,学习哈夫曼树的时候。哈夫曼树的定义:WPL(带权门路长度)最小的二叉树;哈夫曼树的特点:(1)没有度为1的结点(2)n个叶子结点的哈夫曼树共有2n-1个结点(3)哈夫曼树的任意非叶节点的左右子树替换后仍是哈夫曼树。对于”数据结构“,须要记忆的内容也须要本人在其中缓缓领悟。
至于”记住算法思维“,举个例子,思考咱们如何结构一个”哈夫曼树“。当然,在晓得它的定义后,咱们能够本人去设计一个算法。如果,本人能够想进去,祝贺你。如果本人没想到,再看到后人的解决办法后,不是仅仅“惊叹”一声,更要去记住它。
我强调“记住”,并没有死记硬背的意思,而是,很多货色的了解和翻新都是以记忆为前提的。

二、进行大量相干编程练习,用编程语言去实现某一数据结构上的算法(怎么办)
就我而言,这个过程是最难的。很多时候,了解一个算法很容易,很容易在纸下来模仿一个算法的实现过程。但,具体实现,则是另一回事。肯定得先本人思考,而后再去看书中给的编程语言实现。在我看来,这一过程曾经不属于“数据结构与算法”的内容了。而是你综合素质的体现,如何真正了解问题和用编程技巧实现,很考验本人。这一过程,很难靠记忆。而在一直敲代码的过程中去领会一些直觉上的货色。如何用递归解决问题,如何应用循环,如何应用 ” 哨兵”等等等等。当然,敲完后须要去思考总结,看看能不能总结出一些”小套路“并记住。

三、”记住“特定情景下,利用某一特定的数据结构,去解决问题 (为什么 + 怎么办)
每介绍一种数据结构,浙大数据结构与算法的 MOOC 课程都会有一个理论问题来作为“引子”,答复了“这种数据结构为什么会呈现”。有的是为了实现特定的操作,有的是为了工夫和空间上(大部分思考的是工夫复杂性)效率的更高(所以,没事的时候,剖析一下算法的工夫复杂性)。这些货色,咱们也须了解记忆。每一数据结构都有其个性,去解决某一类问题,咱们须要去记忆,去感悟。
最初,在学习过程中, 如何造成一个属于本人的常识体系(筹备在“印象笔记”中单开一个“数据结构与算法”的笔记本);如何去“记住”(记好笔记,多多温习);在学习过程中,遇到挫折,产生挫败感该如何解决(这个是必然会产生的,总有难以了解不会的中央);如何进行心态方面的调整(欲速则不达, 不过也有”麻利学习“的概念)。当然这边能够举荐大家看看这套教程,让你少走弯路,少花工夫:4m.cn/7MHVd

退出移动版