在实际开发过程中你会关心吗?我知道如果你想比较两种算法之间的速度,但在每天的开发过程中还有其他任何实际用途吗?例如,有没有人停下来查看他们的代码并制定出Big-O表示法?
答案 0 :(得分:1)
在很多方面,我编写了图像处理代码,即使是一个简单的函数也可以每天应用数十亿次。
因此,我经常在我的代码中包含性能信息,并在适用的情况下包含Big-O信息。
Big-O表示法在库编写者的实际操作中最有用,因为库代码总是在作者最初没有构思的情况下使用,并且这样的效率信息可以追踪性能问题而无需耗时的调试/分析。对于公司内部项目而言,这与公开可用的库一样。那些指出发布者通常不包含Big-O信息的人应该被提醒,软件也常常表现不佳。
我看到了一种趋向于减少算法知识的趋势,以及更强大的蛮力;这不是一代特定的开发人员,而是有多少开发人员的结果 - 对更多开发人员的需求导致大多数人甚至不了解算法的基础知识。许多人甚至不知道Big-O符号的含义,更不用说如何应用它,无论是选择要使用的库,还是为其他人编写库以供其他人使用。请注意,我不认为这是他们的错,因为显然关注完成项目,无论他们做得对不对。代码的平均寿命正在减少,部分原因在于此。
所以,总而言之,我建议Big-O表示法非常有用,但不经常使用,随着时间的推移,它的使用会减少更多,让更多的开发人员为他们的代码运行原因而摸不着头脑慢。如果你不使用它,不要感觉不好,你占大多数。