刚开始学习数据结构与算法的时候不知道该如何下手,通过一段时间的学习总结了一套自己学习的学习方法。如果正在阅读的您看到有不合理的地方,欢迎指出来,大家一块学习。
数据结构:一组数据的存储结构
算法:操作数据的一组方法
数据结构是为算法服务的,算法是要操作用在特定数据结构上的。
在这之前我们先看一张图:数据结构与算法大全图示:
图中有很多的数据结构与算法,有基础的、常用的、高级的等等,但是对于初学者我认为没必要胡子眉毛一把抓,首先需要学会、学通基础的、切常用的,那么再去接触高级的也就相对容易上手了。所以对于要学什么,总结了两点:
(1)效率和资源消耗的衡量度 -- 复杂度分析
(2)最常用、最基础组的20个数据结构与算法,学习他们的:“来历”、“特点”、“适合解决什么问题”和“实际应用场景”
10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树
10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
(1)边学变练,每周花1~2小时集中攻关最近几天自己学习的数据结构与算法,全部写出来,多练几边,重在理解,不能死记硬背,背下来的东西很容易忘记。
(2)多思考、多交流。独立思想其中的逻辑与思想,有问题多跟专业的算法同学/同事交流,获取我们之前的理解本身就有问题呢。
(3)自我激励,每学习一个知识点做一篇学习笔记。
(4)沉下心学不要浮躁,先把最基础的掌握,然后在去追求更高层次的。
对于上面总结的最基础常用的10个数据结构和算法有需要补充的同学欢迎留言。