为什么学习数据结构和算法?
数据结构和算法能帮助程序员建立复杂度意识,写出高质量的代码。换句话说,这是一名合格程序员的基本功,体现着个人的编程能力。
如何学习数据结构和算法?
学习数据结构和算法的过程无疑是枯燥困难且耗时的,需要个人有强大的精神信仰,明确自己学习的目的;然后就是坚持循环以下两个步骤,循序渐进,逐个击破。
- 输入:看书(系统性)
- 输出:刷题
什么是数据结构和算法?
从广义上讲,数据结构即数据的存储结构,算法是作用在数据上的一组方法。
从狭义上来看,数据结构有数组、链表、树、图等等;作用在数组上的算法有排序、二分查找,树上的算法有前/中/后序遍历,图上的算法有深度优先、广度优先遍历等等。
数据结构和算法的关系?
相辅相成:数据结构是为算法服务的,算法是作用在特定数据结构上的。
数据结构和算法的评价指标?
时间复杂度
代码的执行时间随数据规模增长的变化趋势,可细分为
- 最好时间复杂度
- 最坏时间复杂度
- 平均时间复杂度
- 均摊时间复杂度
常见的时间复杂度有O(1) O(n) O(n2) O(logn)
一般说时间复杂度指的是平均时间复杂度。
空间复杂度
代码执行占用的内存空间随数据规模增长的变化趋势。
一般说空间复杂度指的是平均空间复杂度。