1.是什么?
数据结构与算法研究的是程序执行过程中的执行时间和使用空间的问题,数据结构是为了更好的描述算法,算法是为了操作数据结构。所以需要首先明确几个概念:数据结构、算法、操作常量、时间复杂度、空间复杂度。
数据结构:一组存储数据的存储结构
算法:一种操作数据的方法
常量操作:可以认为是原子操作(最简单操作)
时间复杂度:程序执行时间,可以量化为程序执行常量操作的次数
空间复杂度:程序执行需要的空间
我们的目标就是降低时间复杂度和空间复杂度,如何做到更快,更省,所以复杂度分析就需要掌握,以便来指导是否达到我们的目标。
2.怎么学?
了解各种数据结构的特性,知晓数据结构和算法的来历、场景、解决的问题。
3.常见的数据结构和算法
10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;
10 个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。