tip:数据结构与算法的关系是相互依赖不可分割的
- 定义:算法是解决特定问题求解步骤的描述,在计算机中为指令的有限序列,并且每条指令代表一个或多个操作。
- 特性:有穷性、确定性、可行性、输入、输出
- 设计要求:正确性(首先要有正确的结果,不正确要这算法何用!!)、可读性(不要几天后只有机器懂得这个算法,其他人甚至自己都不知道这算法是干啥的)、健壮性(具有处理特殊情况的能力,不要给轻易的崩溃掉)、高效率和低存储量需求(时间复杂度和空间复杂度)
- 量度方法: 事后统计(不科学不准确)、事前分析估算
- 时间复杂度所耗时间大小排列:
O(1) < O(logn) < O(n) < O(nlogn) < O(n²) < O(n³) < O(2^n) < O(n!) < O(n^n)