时间复杂度:估算程序的执行次数(执行时间)
    空间复杂度:估算所需占用的存储空间

    算法的优化方向:
    尽量少的存储空间、尽量少的执行步骤(执行时间)
    根据情况可以:空间换时间、时间换空间

    数组的复杂度:

    类型 复杂度
    数组:读、写 O(1)
    数组:插入、删除 O(n)
    链表:读、写、插入、删除 O(n)

    复杂度震荡:
    扩容和缩容的比例相乘等于1会造成复杂度震荡,只要相乘不等于1就好了,比如扩容2倍,缩容1/2则会造成震荡,把缩容改成1/4,且实际缩小1/2,就会避免震荡了。