数据结构和算法-学前问题

101 阅读2分钟

为什么学习数据结构和算法?

数据结构和算法能帮助程序员建立复杂度意识,写出高质量的代码。换句话说,这是一名合格程序员的基本功,体现着个人的编程能力。

如何学习数据结构和算法?

学习数据结构和算法的过程无疑是枯燥困难且耗时的,需要个人有强大的精神信仰,明确自己学习的目的;然后就是坚持循环以下两个步骤,循序渐进,逐个击破。

  1. 输入:看书(系统性)
  2. 输出:刷题

什么是数据结构和算法?

从广义上讲,数据结构即数据的存储结构,算法是作用在数据上的一组方法。

从狭义上来看,数据结构有数组、链表、树、图等等;作用在数组上的算法有排序、二分查找,树上的算法有前/中/后序遍历,图上的算法有深度优先、广度优先遍历等等。

数据结构和算法的关系?

相辅相成:数据结构是为算法服务的,算法是作用在特定数据结构上的。

数据结构和算法的评价指标?

时间复杂度

代码的执行时间随数据规模增长的变化趋势,可细分为

  • 最好时间复杂度
  • 最坏时间复杂度
  • 平均时间复杂度
  • 均摊时间复杂度

常见的时间复杂度有O(1) O(n) O(n2) O(logn)

一般说时间复杂度指的是平均时间复杂度。

空间复杂度

代码执行占用的内存空间随数据规模增长的变化趋势。

一般说空间复杂度指的是平均空间复杂度。