算法中七种常见的时间复杂度作为程序员,我们经常努力编写尽可能高效的代码。但是我们怎么知道我们编写的代码是否高效?答案:大

作为程序员,我们经常努力编写尽可能高效的代码。但是我们怎么知道我们编写的代码是否高效?答案:大O分析。本文的目的是用尽可能简单的术语来解释这个概念。我将首先介绍BigO,然后举例说明您可能会遇到的七个最常见的情况。如果您已经熟悉这个概念,但是想要使用真实的Python代码进行具体的复习,请随时跳到第二部分!

1.算法—一组逻辑步骤,作用于输入以产生输出。

在本文中,我将算法与更熟悉的概念联系:函数。回想一下你编写的大多数函数的功能,它们将一个或多个参数作为输入,对这些参数执行指定的操作步骤,然后返回一个值作为输出。不要害怕这个花哨的词,您可能已经写了很多算法!从现在开始,当我说「算法」时,你可以直接把它理解为「函数」。

3.输入规模—算法需要处理的数据量。

既然我们已经了解大O表示法的作用了,那么它究竟怎么写呢?好吧,它的写法是大写的「O」,后面跟着一个括号,括号里面是一个包含「n」(即输入规模)的数学表达式。下文中有最常见的七个示例,按照运行效率从高到低排序。

现在,让我们看一下上述每种复杂度的算法对应的一些常见例子。

fromtypingimportAny,Listdeflinear_search(list_:List[Any],target_value:Any)->int:"""对输入列表执行线性搜索以找到目标值。返回列表中目标值的索引,如果未找到则返回-1。"""#遍历列表中的每一项,检查其是否为目标值forindex,iteminenumerate(list_):ifitem==target_value:returnindex#如果在列表中未找到目标值,则返回一个标记值return-1显然,随着输入列表大小的增加,由于需要检查列表中的每个项目,最坏情况下找到目标所需的循环迭代次数的增长与输入列表的大小增长成正比。

列举对数线性复杂度算法的示例会比之前难一些。顾名思义,它们同时包含对数和线性部分。其中最常见的示例是排序算法。有一个算法叫「归并排序」,它用迭代手法将数组分成一小块一小块,对每小块进行拆分、排序,然后再按顺序重新将各个小块合并在一起。通过图像可以更容易看明白,因此我将省略代码的实现。

THE END
1.小学数学简便算法方法归类,分享给孩子!(附14个计算技巧)小学数学简便算法方法归类,分享给孩子!(附14个计算技巧) 小学数学的学习也决定着孩子将来的学习生涯,所以作为家长我们需要还孩子提供最适合的学习方法,帮助他们提高学习成绩。今天给大家分享一下数学中经常遇到的简便计算的解题方法,希望对大家有帮助。https://mp.weixin.qq.com/s?__biz=MzA5Mjc5MjI5Ng==&mid=2652579985&idx=2&sn=4fc63a760f38a4cda3749f018860926a&chksm=8ae487608eda872604b26214ae7c69b46bcbf92bface200866b79b0e0d63df5bf2dec2f03055&scene=27
2.这8种算法,必须掌握——程序员算法一:快速排序法 快速排序法是对冒泡排序的一种改进,是通过一趟排序将要排序的数据,分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后在按此方法,对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。对于快速排序算法来说,实际上大量的时间https://baijiahao.baidu.com/s?id=1771832733532542126&wfr=spider&for=pc
3.简述几种常用的排序算法归并排序和快速排序是两种稍微复杂的排序算法,它们用的都是分治的思想,代码都通过递归来实现,过程非常相似。理解归并排序的重点是理解递推公式和 merge() 合并函数。 一,冒泡排序(Bubble Sort) 排序算法是程序员必须了解和熟悉的一类算法,排序算法有很多种,基础的如:冒泡、插入、选择、快速、归并、计数、基数和桶排https://zhuanlan.zhihu.com/p/617318046
4.数据挖掘的常见算法有哪些?数据挖掘的常见算法有哪些? 数据挖掘是一种通过从大量数据中提取知识和信息的方法,以支持业务决策、市场分析和科学研究等领域。在数据挖掘过程中,算法是最重要的组成部分之一。以下是常见的数据挖掘算法。 1.分类算法 分类算法是一类用于将数据样本分为不同类别的算法。这些算法通常使用监督学习方法,其中模型基于已标记https://www.cda.cn/bigdata/202782.html
5.常见的经典算法有哪些Python常见的经典算法有哪些 在计算机科学领域,有一些经典算法被广泛应用于各种问题的解决。这些算法经过长期的研究和实践,被证明是高效且有效的。本文将介绍几个常见的经典算法,并提供相应的Python源代码。 一、冒泡排序算法(Bubble Sort) 冒泡排序是一种简单但效率较低的排序算法。它的基本思想是通过相邻元素之间的比较和交https://download.csdn.net/blog/column/12405713/133216600
6.什么是哈希算法?常见的哈希算法有哪些?区块链技术区块链这篇文章主要介绍了什么是哈希算法?常见的哈希算法有哪些?的相关资料,需要的朋友可以参考下本文详细内容介绍 哈希算法是一种数学函数或者算法,它可以将任意长度的数据(称为“消息”)转换为固定长度的字符串(称为“哈希值”或者简称“哈希”)。哈希算法的作用是将数据进行一次性的加密,从而生成一个唯一且不可逆的标识https://www.jb51.net/blockchain/891421.html
7.什么是哈希算法?常见的哈希算法有哪些?常见的哈希算法有哪些? 币界网报道: 哈希算法,也被称为散列算法,是一种将输入数据转换为固定长度的输出值的算法。它通过对输入数据进行一系列复杂的计算和操作,生成一个唯一的哈希值。哈希算法的最大特点是快速和高效,能够快速地确定数据是否被篡改或者检索数据。https://www.528btc.com/college/1695140495130670.html
8.常见的排序算法有哪些?如何实现这些算法?常见的排序算法有哪些?如何实现这些算法? 1.背景介绍 在计算机科学与数学中,排序算法(Sorting algorithm)是一种能将一串资料依照特定排序方式进行排列的一种算法。 最常用到的排序方式是数值顺序以及字典顺序。 有效的排序算法在一些算法(例如搜寻算法与合并算法)中是重要的, 如此这些算法才能得到正确解答。 排序算法也https://www.pianshen.com/article/7707638722/
9.加密算法可以归结为哪几类常见的加密算法有哪些对称加密是指加密和解密使用同一个密钥的加密方式,其中最常见的算法包括DES、3DES、AES等。 2.非对称加密 非对称加密是指加密和解密使用不同密钥的加密方式,常规算法包括RSA、DSA、ECC等。 3.哈希函数 哈希函数是指将任意长度的消息压缩成固定长度摘要的函数,常见算法有MD5、SHA-1、SHA-256等。 https://www.eefocus.com/e/528368.html
10.2022年最新出品“68道Redis+168道MySQL”精品面试题43. Redis 持久化机制有哪些? 44. Redis 持久化机制 AOF 和 RDB 有哪些不同之处? 45. 请介绍一下 RDB 持久化机制的优缺点 46. 请介绍一下 AOF 持久化机制的优缺点 47. 如果 AOF 文件的数据出现异常, Redis 服务怎么处理? 48. 常见的淘汰算法有哪些? https://maimai.cn/article/detail?fid=1726703164&efid=-tABoLbWyf4LHUqCpif90g
11.自动驾驶路径规划五大常用算法汽车技术以上为几大常见规划算法分享,欢迎评论区各位工程师们一起探讨不同规划算法的使用情况。 后面也会持续分享基于不同规划算法的公式推导、建模的干货。https://www.auto-testing.net/news/show-116633.html
12.TensorFlow机器学习常用算法解析和入门集成算法用一些相对较弱的学习模型独立地就同样的样本进行训练,然后把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。常见的算法包括:Boosting, Bootstrapped Aggregation(Bagging), AdaBoost,堆叠泛化(Stacked Generalihttps://www.w3cschool.cn/tensorflow/tensorflow-s8uq24ti.html
13.面试宝典2021性能测试经典面试题(三)56:垃圾收集算法有哪些 常见的垃圾收集算法有以下几种: a、标记 -清除算法,“标记-清除”(Mark-Sweep)算法,如它的名字一样,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。 b、复制算法,“复制”(Copying)的收集算法,它将可用内存按容量划分为大小http://www.chuansinfo.com/index.php?m=home&c=View&a=index&aid=1600
14.关于查找有哪些常见的算法?查找算法有两种:一种只作查找操作,我们称之为静态查找。一种在查找过程种同时插入或删除数据元素,我们称之为动态查找。 静态查找 它的功能如下: 查询某个“特定的”数据元素是否在查找表中; 检索某个“特定的”数据元素和各种属性。 常见的查找方法有:顺序查找、折半查找、插值查找、斐波那契查找等,容我细细讲来https://www.jianshu.com/p/6c1afbeb9b96