2、如何抓住重点,系统高效的学习算法与数据结构?

既然我们要学习算法与数据结构,肯定要有一定的策略,就像行军打仗一样,要有规划,这样才能系统高效的完成我们的学习的目的,否则我们就会像无头苍蝇一样,这看一下,哪看一下,最终学到的东西也没有重点,不系统。那我们如何抓住重点,来学习我们的算法与数据结构呢?
根据日常的工作以及面试情况来说,只要学会下面这些知识,足以对付大部分实际问题。

1)10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树
2) 10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。

学习这些知识的时候也多注重理解,不能死记硬背,多思考一下这些知识的特点以及它们的适用场景,最终达到举一反三的程度。还要有一些学习的技巧,能够达到事半功倍的效果。

  1. 边学边练,适度刷题。学习算法的时候一定要多动手敲一下,这样才能深刻的理解算法。我们在刚学习编程的时候都是看着书本敲,然后慢慢自己开始尝试脱离书本敲代码,慢慢的才入了编程的大门,学习什么知识都要多动手练,这样才能更快更深入的理解。同样可以在leetcode做一下相关算法的题目,来强化自己对算法知识点的理解。
  2. 多问,多思考。 如果有什么不懂得地方,要多思考,最好能找到几个一块学习的,这样可以互相讨论学习,虽然现在毕业之后就没有同学了,但是可以与公司同事或者在网上的技术论坛与人讨论技术。
  3. 打怪升级法。把学习当做是一种乐趣,我们玩游戏都是打怪升级,把上面所说的每个数据结构与算法当做是BOSS,一个一个的攻克,早晚你会通关的。
  4. 多总结知识点,沉淀这些知识。不要想着一口能够把这些知识点给吃完,如果不懂就多花点时间去学。书读百遍,其义自见。相信我们只要愿意花时间去学校,肯定能够把这些知识点给学会。

总结了我们要学习的重点知识点,学习的技巧,接下来就要坚持打怪,把这些Boss全部给搞定。加油,你行的!!!

你可能感兴趣的:(2、如何抓住重点,系统高效的学习算法与数据结构?)