Python数据结构的时间复杂性

本文介绍了CPython中数据结构关键操作的大0表示。Big-o标签本质上是一种测量操作时间复杂性的方法。本文还解释了列表、集合和词典的许多常见操作。

为算法设计和选择正确的数据结构非常重要。

我希望我能帮助你。

摘要

本文介绍了CPython中数据结构关键操作的大0表示。Big-o标签本质上是一种测量操作时间复杂性的方法。本文还解释了列表、集合和词典的许多常见操作。

选择正确的数据类型通常会被忽略,最终会严重影响应用程序的性能。

为什么我们需要知道时间复杂性?

本文介绍了CPython中数据结构关键操作的大0表示。Big-o标签本质上是一种测量操作时间复杂性的方法。本文还解释了列表、集合和词典的许多常见操作。

文章目的

本文介绍了CPython中数据结构关键操作的大0表示。Big-o标签本质上是一种测量操作时间复杂性的方法。本文还解释了列表、集合和词典的许多常见操作。

Big-O测量算法的时间复杂度。它测量算法计算所需操作所需的时间。虽然我们也可以测量空间复杂度(算法占用了多少空间),但是本文将重点讨论时间复杂度。

用最简单的话来说,大0符号是一种基于输入大小(称为N)来衡量操作性能的方法。

1.让我们了解大O符号的含义是什么?

本文介绍了CPython中数据结构关键操作的大0表示。Big-o标签本质上是一种测量操作时间复杂性的方法。本文还解释了列表、集合和词典的许多常见操作。

让我们考虑n作为输入集的大小。就时间复杂度而言:

这张图片描绘了大0符号。

O(1)很快。O(n平方)非常慢。O(n!)非常慢。

大o符号是相对的。大0符号与机器无关,忽略常数,被包括数学家、技术人员、数据科学家等在内的广大读者所理解。

2. Big O表示法有何不同?

本文介绍了CPython中数据结构关键操作的大0表示。Big-o标签本质上是一种测量操作时间复杂性的方法。本文还解释了列表、集合和词典的许多常见操作。

最佳方案:顾名思义,这是当数据结构和集合中的项和参数处于最佳状态时的方案。例如,假设我们想在集合中找到一个项目。如果该项目恰好是集合中的第一个项目,则这是操作的最佳情况。

O(1):执行操作所需的时间是恒定的,与您的收藏大小无关。这是一个恒定的时间复杂度符号。这些操作尽可能快。例如,检查集合中是否有操作为O(1)操作的项目。O(log n):随着集合大小的增加,执行操作所需时间的对数也增加。这是对数时间复杂度的表示。潜在的优化搜索算法是0(对数n)。O(n):执行操作所需的时间与器械包中的物品数量成线性比例。这是线性时间复杂性的标志。就性能而言,这介于两者之间。举个例子,如果我们想对集合中的所有项求和,我们必须遍历集合。因此,集合的迭代是一个0(n)运算。(n log n):操作的性能是集合中项目数量的准线性函数。这被称为准线性时间复杂性表示。优化排序算法的时间复杂度通常为n(对数n)。O(n平方):执行操作所需的时间与集合中项目的平方成正比。这被称为二次时间复杂度表示。(n!):当计算操作中集合的每个单独排列时,执行操作所需的时间取决于集合中项目的大小。这被称为阶乘时间复杂性表示。非常慢。

平均值根据输入值的分布定义复杂性。

最坏的情况是,可能需要一个操作来查找大集合(如列表)中最后一个项目的项目,算法将从第一个项目开始遍历集合。

在本文的这一部分,我将在CPython中记录常见的集合,然后概述它们的时间复杂性。

我会特别注意一般情况。

最佳,平均,最差情况

本文介绍了CPython中数据结构关键操作的大0表示。Big-o标签本质上是一种测量操作时间复杂性的方法。本文还解释了列表、集合和词典的许多常见操作。

让我们回顾一下常见的列表操作及其大0符号

删除项目:大0表示法是0(n)迭代:大0表示法是0(n)采集长度:大0表示法是0(1)Python数据结构的时间复杂性约书亚·索提诺(Joshua Sortino)在Unsplash@

1.List

collection也是Python中使用最广泛的数据集合之一。集合本质上是无序的集合。集合不能重复,因此集合中的每个项目都是唯一的。集合支持许多数学运算,如集合的并集、差集、交集等。

让我们回顾一下通用集合操作

2.Set

最后,我想概述一下字典数据收集。字典是键值对的集合。关键字在字典中是唯一的,以防止项目冲突。这是一个非常有用的数据收集。

dictionary由键索引,键可以是字符串、数字,甚至是带有字符串、数字或元组的元组。

我们可以在字典上执行许多操作,例如存储键值、基于键检索项目或遍历项目等。

让我们回顾一下常见的字典时间复杂度:

这里,我们认为这个键是用来获取、设置或删除项目的。

 

极牛网精选文章《Python数据结构的时间复杂性》文中所述为作者独立观点,不代表极牛网立场。如若转载请注明出处:https://geeknb.com/3435.html

(34)
打赏 微信公众号 微信公众号 微信小程序 微信小程序
主编的头像主编认证作者
上一篇 2019年11月23日 下午11:25
下一篇 2019年11月23日 下午11:38

相关推荐

发表回复

登录后才能评论
扫码关注
扫码关注
分享本页
返回顶部