数据结构

  • 数据按照一定规则组合在一起,形成一个集合
  • 比如常见的有数组,链表,栈,队列,红黑树,堆树,跳表等

    算法

  • 就是一种解决问题的思想,一个问题可以由一种或多种算法解决

  • 比如数字排序问题可以由快速排序和冒泡排序组成

    算法的特性

  • 有穷性,确定性,可行性,有输入,有输出

    时间复杂度:运行一个程序所花费的时间 O()

    空间复杂度:运行程序需要的内存 OOM

几种时间复杂度效率对比

  • 常数级>对数级>线性级>线性对数>平方>次方
  • O(1)>O(logn)>O(n)>O(nlogn)>O(n^2)>O(n^x)

    找时间复杂度方式

  • 有循环的地方

  • 有网络请求的地方(RPC,远程调用,分布式,数据库请求)的地方。
  • log打印请求时间,计算平均时间

    空间复杂度分析

  • 一般用于数据在内存使用分析