算法:
在计算机领域里,算法是一系列程序指令,用于处理特定的运算和逻辑问题。
衡量算法优劣的主要标准是时间复杂度和空间复杂度。
数据结构:
数据结构是数据的组织、管理和存储方式,其使用目的是高效的访问和修改数据。
数据结构包括数组、链表这样的线性数据结构、也包含树、图 这样的复杂的数据结构。
时间复杂度:T(n):基本操作执行次数的函数
时间复杂度是对一个算法运行时间长短的量度,用大O表示,记作记作T(n) = O(f(n)。
常见的时间复杂度按照从低到高的顺序排列,O(1)<O(logn)<O(n)<O(n²)
O(1):常数量级
O(logn):对数
O(n):线性结构
O(n²):指数形式
空间复杂度:
空间复杂度是对一个算法在运行过程中临时占用存储空间大小的度量,用大O表示,记作S(n) = O(f(n))。其中n为问题的规模,f(n)为算法所占用存储空间的大小。
常见的空间复杂度按照从低到高的顺序,O(1)<O(n)<O(n²)等,其中递归算法的空间复杂度和递归深度成正比。
O(1):常数空间
O(n):线性空间
O(n²):二维空间