《Python算法教程》——2.5 本章小结

    xiaoxiao2024-05-07  4

    本节书摘来自异步社区《Python算法教程》一书中的第2章,第2.5节,作者[挪威]Magnus Lie Hetland(赫特兰), 凌杰 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

    2.5 本章小结

    在本章,我们从一些重要的基本概念入手,定义了一系列略显松散的算法理念、抽象计算机及一些相关的问题。紧接着,我们讨论了两个主要话题,即渐近表示法与图结构。渐近记法主要用于描述一个函数的增长态势。它能让我们忽略掉那些不相干的加法或乘法常数,并聚集于问题的主体部分。这样一来,我们就可以根据一些显著特征,在某个抽象层次上对相关算法进行运行时间评估,而不用去操心既定实现中的那些具体细节。我们用三个希腊字母O 、Ω与Θ来分别表示算法的上界、下界以及整体渐近边界,它们各自可以用来描述一个算法在最好、最坏以及平均情况下的具体行为。另外,作为对这些理论分析的一个补充,我们还为相关的程序测试工作提供了一份简短的指南。

    图结构是一种抽象的数学对象,可以用来表示各种网络结构。它主要由一组节点组成,彼此之间通过一些边线连接。这些边线可以带有加权值以及方向这样的属性。图论中有许多专业用语,我们将其大量汇总在附录C中。本章第二部分内容所讨论的是这些结构在实际Python程序中的表示方法,这里主要采用了邻接列表和邻接矩阵的各种变体,其实现主要由list、dict以及set这些类型各自组合而成。

    最后,还有一节内容是关于黑盒子风险的。我们应时刻注意身边那些潜在的陷阱——也就是我们正在使用的但却还不太了解的那部分工作内容。例如,在使用某些相对简单的内置Python函数时,它的运行时间可能是平方级的,而不是线性级的。这时候,或许通过一定的程序分析,我们可以找出其中所隐藏的那些性能问题。此外,在精确性方面也存在着类似的陷阱。例如,如果您在浮点数的使用上太大意的话,问题的答案很可能就会出现一定偏差。因此,如果准确性很重要,那最好的方案就是分别用两种不同的实现来计算该问题,然后对比其结果。

    相关资源:python基础教程(第二版)PDF高清
    最新回复(0)