记得以前上软件技术导论的时候,听的最多的话就是时间和空间是两个不可调和的矛盾,要么去拥有时间,要么去拥有空间,当然如果一个算法中即不节省空间,也不节约空间,那这就是个失败的算法.
这两者是不可同时兼得的,就拿Python中的数据类型来说
1 | import sys |
1 | <class 'list'>,64 |
可以看到,列表和元组所占内存较小,而字典和集合占的内存较大,所以可以这样理解,当我们去查询某一个元素是否在列表或者字典中时,列表查找的时间复杂度是O(n),而字典查找的时间复杂度是O(1),字典牺牲了空间换取了时间.
我只是很肤浅的从这里看到了一点关于时间与空间的矛盾,我相信通过不断的深入学习,应该会遇到更多的这种情况.