跳至主要內容

Week3:渐进分析1

AI悦创原创大约 3 分钟...约 838 字

注意

本系列,你可以在我网站免费学习,但是切勿 copy 分发。本系列为书稿,我的爬虫系统会全天检索。被我找到,我必维权和告之,不死不休。

你学习本系列有问题,可以评论区和加我微信,拉你进交流群。微信:Jiabcdefh

你好,我是悦创。

今天的话题,会有有些枯燥:使用渐进分析,我们就可以判断一段代码是高效率还是低效率。

在上节课,我们特意创建了一个使用 Python 列表创建的 set ADT。但是我们也知道,那是非常低效的代码。这种实现方法可以,但是运行的不快。

美国有句老话:An engineer will do for a dime what any fool will do for a dollar.

工程师与傻瓜相比,其高明之处在于能省钱省力。

这句话的意思是:有些事情,很多人都有能力做,比如修水管、安装房子的大门或者修车,但是只有一部分人,真正能称得上做得好。编程也是这样,任何人,哪怕只有非常基础的编程知识,都能写出非常庞大的程序。但你会发现,缺少专业知识的人,只能写出不好的代码。

——什么样的代码算不好的呢?

「数据结构不佳的代码,就是不好。」

这样的代码会非常复杂,很难读懂。运行起来缓慢,占内存大。

反之,如果你养成了很好的编程习惯,你就能写出运用正确数据结构的代码。

这样的代码简单优雅,运行起来非常快捷。占用合理的内存大小,我把数据结构拿到最前面讲,是有原因的。——这是写好代码的最重要的环节之一。

如果数据结构不错,代码就更容易写。更有效率,人生都美好了。

比如:我们之前看到用 Python 列表数据结构,建立抽象数据类型的集。「人生太痛苦了」

我们今天要学习一种叫做 Big-Theta,一种严密的方法,并以此来判断。

一段代码运行起来,是快是慢。

这种方法必须在数学上具有严密性。

欢迎关注我公众号:AI悦创,有更多更好玩的等你发现!

公众号:AI悦创【二维码】

AI悦创·编程一对一

AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh

C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh

方法一:QQopen in new window

方法二:微信:Jiabcdefh

上次编辑于:
贡献者: AndersonHJB
你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度