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

简介:

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

2.5 本章小结

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

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

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

相关文章
|
1天前
|
Python
Python基础教程: math库常用函数(1),Python这些高端技术只有你还不知道
Python基础教程: math库常用函数(1),Python这些高端技术只有你还不知道
|
3天前
|
存储 数据挖掘 数据处理
使用Python将数据表中的浮点数据转换为整数:详细教程与案例分析
使用Python将数据表中的浮点数据转换为整数:详细教程与案例分析
7 2
|
3天前
|
算法 搜索推荐 C语言
Python实现数据结构与算法
【5月更文挑战第13天】学习数据结构与算法能提升编程能力,解决复杂问题,助你面试成功。从选择资源(如《算法导论》、Coursera课程、LeetCode)到实践编码,逐步学习基本概念,通过Python实现栈、队列和快速排序。不断练习、理解原理,探索高级数据结构与算法,参与开源项目和算法竞赛,持续反思与实践,以提升技术能力。
6 0
|
3天前
|
机器学习/深度学习 算法 数据可视化
Python 数据结构和算法实用指南(四)(4)
Python 数据结构和算法实用指南(四)
10 1
|
3天前
|
机器学习/深度学习 存储 算法
Python 数据结构和算法实用指南(四)(3)
Python 数据结构和算法实用指南(四)
14 1
|
3天前
|
存储 算法 搜索推荐
Python 数据结构和算法实用指南(四)(2)
Python 数据结构和算法实用指南(四)
10 0
|
3天前
|
存储 算法 Serverless
Python 数据结构和算法实用指南(四)(1)
Python 数据结构和算法实用指南(四)
14 0
|
3天前
|
存储 算法 搜索推荐
Python 数据结构和算法实用指南(三)(4)
Python 数据结构和算法实用指南(三)
10 1
|
3天前
|
存储 搜索推荐 算法
Python 数据结构和算法实用指南(三)(3)
Python 数据结构和算法实用指南(三)
10 1
|
3天前
|
存储 算法 前端开发
Python 数据结构和算法实用指南(三)(2)
Python 数据结构和算法实用指南(三)
10 1