为什么要降低复杂度?
降低复杂度的根本目的是为了提高代码执行效率,即节省空间,节省时间。在不同的场景下,时间和空间的重要性又有区别。基于此,降低复杂度的方法论如下:
- 无效操作处理:将代码中的无效计算、无效存储删除,降低时间或者空间复杂度。
- 时空转换:设计合理的数据结构,完成复杂度向空间复杂度的转移。
复杂度是衡量代码执行效率的重要依据,而算法和数据结构则是降低复杂度的有效方法,那么从目的看问题,整理如下知识体系:
对于该知识体系的完善可以分为以下步骤:
- 增加对整个体系的认知,以达到以全局观看待问题的目的。
- 完善对数据结构特性的认知,以增加在算法思维中对时空问题转换的思考基础。
- 完善对常见问题类型的方法论认知,以获取基础的问题解决的思维方法。
- 练习习题,通过练习巩固对数据结构应用、算法、方法论的认知。