为什么要降低复杂度?

    降低复杂度的根本目的是为了提高代码执行效率,即节省空间,节省时间。在不同的场景下,时间和空间的重要性又有区别。基于此,降低复杂度的方法论如下:

    1. 无效操作处理:将代码中的无效计算、无效存储删除,降低时间或者空间复杂度。
    2. 时空转换:设计合理的数据结构,完成复杂度向空间复杂度的转移。

    复杂度是衡量代码执行效率的重要依据,而算法和数据结构则是降低复杂度的有效方法,那么从目的看问题,整理如下知识体系: 算法 & 数据结构 - 图1

    对于该知识体系的完善可以分为以下步骤:

    1. 增加对整个体系的认知,以达到以全局观看待问题的目的。
    2. 完善对数据结构特性的认知,以增加在算法思维中对时空问题转换的思考基础。
    3. 完善对常见问题类型的方法论认知,以获取基础的问题解决的思维方法。
    4. 练习习题,通过练习巩固对数据结构应用、算法、方法论的认知。