本文介绍了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)约书亚·索提诺(Joshua Sortino)在Unsplash@
1.List
collection也是Python中使用最广泛的数据集合之一。集合本质上是无序的集合。集合不能重复,因此集合中的每个项目都是唯一的。集合支持许多数学运算,如集合的并集、差集、交集等。
让我们回顾一下通用集合操作
2.Set
最后,我想概述一下字典数据收集。字典是键值对的集合。关键字在字典中是唯一的,以防止项目冲突。这是一个非常有用的数据收集。
dictionary由键索引,键可以是字符串、数字,甚至是带有字符串、数字或元组的元组。
我们可以在字典上执行许多操作,例如存储键值、基于键检索项目或遍历项目等。
让我们回顾一下常见的字典时间复杂度:
这里,我们认为这个键是用来获取、设置或删除项目的。
极牛网精选文章《Python数据结构的时间复杂性》文中所述为作者独立观点,不代表极牛网立场。如若转载请注明出处:https://geeknb.com/3435.html