为什么要学习数据结构和算法
- 基础知识就像是一座大楼的地基,它决定了我们的技术高度。而要想快速做出点事情,前提条件一定是基础能力过硬,“内功”要到位。
- 掌握了数据结构与算法,你看待问题的深度,解决问题的角度就会完全不一样
- 不需要自己实现,并不代表什么都不需要了解。
- 业务开发工程师,你真的愿意做一辈子 CRUD boy 吗?
数据结构与算法的意义,以及联系
- 从广义上讲,数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。
- 数据结构是为算法服务的,算法要作用在特定的数据结构之上。比如,因为数组具有随机访问的特点,常用的二分查找算法需要用数组来存储数据。但如果我们选择链表这种数据结构,二分查找算法就无法工作了,因为链表并不支持随机访问。
如何高效学习
1 首先要掌握一个数据结构与算法中最重要的概念——复杂度分析。
2 其次,抓住重点,提升效率
10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;
10 个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
3 要学习它的“来历”“自身的特点”“适合解决的问题”以及“实际的应用场景”
4 边学边练,适度刷题
5 多问、多思考、多互动
6 知识需要沉淀,给自己设立一个切实可行的目标