温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
当人们提到算法一词,往往就会把他们当成专属于人工智能的范畴。很多专业的计算机人士也是提起算法就头疼,不知道如何学习算法,慢慢的对算法就会失去兴趣。算法不仅仅是计算机行业特有的,在我们的生活中也处处存在着算法。算法是专注于解决问题的过程和方法,既然提到了算法是解决问题的方法,那方法也是有好有坏的。算法是在特定问题下解决问题的方法。证明一个算法的好坏,就要看它的时间复杂度和空间复杂度。通过一个实例来说明算法的好坏。假如李四是班长,老师叫李四统计下本班的人数是多少,李四非常自信的一个、两个、三个的竖了起来,然后报告老师,本班总共八人,老师说人数少可以这样数,然后人数过大是不是就非常浪费时间了,那你的时间复杂度是?
01:00
不是就大了,想想还有没更好的办法?基于这个想法,可不可以以两个一组进行来分,最后看下综合是多少组成于卡组的总人数是不是就是它的总人数?那可不可以以十人一组或者20人一组呢?这样是不可取的,因为多人一组还是要数的,最后时间复杂度还是要增大的。结合以上两个算法,可以得出组的概念还是有用,哪能不能更高效大的方法呢?如果在人数较多的情况下,可不可以按照房间的概念来区分的?假设每个房间可以容纳20人,最后一个容纳多少人?前面每个房间数乘以容纳的人数,再加上最后一个房间容纳的人数之和,就可以得到最终的人数。以房间号计算的方式虽然可以快速计算出结果,但是它所消耗的空间复杂度是大的,反而有点得不偿失的。如果不考虑消耗的内存大小,可以考。
02:00
虑使用这种方式思考这样一个问题,如果可以投入一点的成本,是不是可以降低它的时间复杂度和空间复杂度呢?其实如果可以购买一些记事本,每次来校的学生都要进行登记,我们只需要计算记事本的人数和有多少个记事本,是不是可以更快而且高效的计算出学生的总人数呢?以上几种算法都可以达到想要的结果,但是考虑到实际应用的场景以及后期更好的性能输出,还是要考虑它的时间复杂度和空间复杂度作为一个好算法的衡量标准,其次就是它的可读性。更新说明优先更新微信公众号雨夜的博客后,更新博客之后才会陆续分发到各个平台。如果先提前了解更多,请关注微信公众号雨夜的博客PCF方式阅读什么是算法博客?来源,雨夜的博客。
我来说两句