昨日话题
看完本文,对于算法的时间和空间复杂度分析,你了解到什么程度了?或者说说自己是如何学习数据结构和算法的?如果你不是程序员,也可以分享今天的真实收获 。任何一个话题都可以,只要是经过自己认真思考后得出的答案即可!每天文末的话题讨论打卡,就是希望大家多交流,每个人都有在公众号发言的权力!希望你和我一起在这里成长!
下面是挑选昨天打卡回答最佳5条打卡评论,供大家学习和借鉴!
Top1:
Day4:我现在是一名在校大学生,喜欢编程,以后想做这方面的工作。但我最头疼的就是数据结构,一看到数据结构就烦,所以我从来不会去看关于数据结构的东西。但今天这篇文章,我明白了数据结构是在编程的过程中不可避免的。因为我已经曾经设计过神经网络来训练数据,但是训练的时候电脑就卡死了,但是用别人的代码就不会,我觉得这就是数据结构的问题。不过我自己现在有个很迷惑的问题,就是不知道自己以后是做大数据这方面的工作好,还是做深度学习姿态识别这方面的工作好。我找过相关的资料,目前大数据这方面的教程已经很系统了,我觉得自己可以跟着教程来一步一步深造,但是我认为大数据涉及太多的数据结构,会很难,我怕自己掌握不了。而姿态识别的话,还没有一个比较系统的学习教程,要靠自己东拼西凑来学习,而这样的话,我怕会不够深入,因为现在姿态识别还在发展。嘻嘻,我想能够有一期来给像我们这些迷途小羔羊一些职业的分析,让我们重新认真思考下自己以后的路。望采纳.
Top2:
Day08:计算机软件是由数据结构和算法组成的,学习算法是每个程序员必经之路。学习算法就是学习思想,有了思想代码就有了生命,会向着你想要的方向去前进。计算时间、空间复杂度只是鉴别算法好坏的一个方面,因为同一时间复杂度的算法在不一样的场景下表现也各不相同,为了寻求更适合当下场景的算法还需要努力学习活学活用。
Top3:
Day07:今天的内容除了均摊时间复杂度外基本就是数据结构与算法会讲的入门内容了。在编程入门阶段,尤其是在做一些教材练习题或者刷一些OJ时,一般除了题目有要求外,初学者不会过多考虑到程序运行时间和占用空间的问题,因为多申请几个数组、多写几个冗余for循环也不会让程序跑不出来。
而在一些计算高频密集的领域,比如数据挖掘,很多机器学习算法虽然调库就是一行代码,但是底层实现还是颇为复杂,而且经常一行代码就需要运行很长时间。典型的像SVM,存在onevsone和onevsrest两种策略,对于n类别分类问题,前者训练n*(n-1)/2个分类器,后者训练n个分类器,两者在时间和空间上的表现就有所不同,具体采用哪种也要看资源限制和时间限制。所以,从入门开始就培养自己有意识地简化和权衡时间、空间复杂度,养成习惯,对后续的学习还是有帮助的。
Top4:
Day8:之前看过这篇了哈哈
几乎每本数据结构的书一开始都会讲复杂度分析
如果一个算法的执行次数是 T(n),那么只保留最高次项,同时忽略最高项的系数后得到函数 f(n),此时算法的时间复杂度就是 O(f(n))。也就是大O推导法。
Top5:
Day 08:说起来,一年前的这个时候,我就刚好在学习数据结构。当然,在课堂上是很难深入学习数据结构的,不过跟着老师的脚步,系统的学习基础知识,是完全可以的,这对以后深度学习还是很重要的。而对于复杂度这个知识点,我记忆还是挺深的,我曾经也跟着师兄做过一个项目,我帮忙做APP 开发,然后现在对于复杂度的理解,特别是在做非大型的安卓开发,我觉得完全可以不用考虑空间复杂度,毕竟如今的安卓手机,硬件配置方面已经完全溢出了,而在取舍的情况下,尽量减少时间复杂度才是我们的首要目标。所以那时候代码都是使劲堆的 ,空间上的申请也没省。不过话说回来,真正在做开发的时候,因为时间复杂度跟空间复杂度基本上是无法都取最佳的,因此我们要在均衡需求的情况下,选择最适合的方案。
不知道我这样的理解对不对 ,不过希望还在学习的小伙伴们,做开发的时候可别真像我这种,感觉会唉怼的。
然后真的很推荐正在学或者还没学数据结构与算法的,真心要去认真学,不说要学的多深入,但之前要理解,要有印象,以后做开发会需要用到的🤔