01. 算法介绍与列表查询
Posted april_aaa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了01. 算法介绍与列表查询相关的知识,希望对你有一定的参考价值。
作为自学的总结,本部分包括基本的算法介绍和***(以后补)
Part one.
* 算法的基本概念
一个计算过程,解决问题的方法
* 相关复习
递归:自己调用自己,并且有结束条件
* 两个基本属性
时间复杂度:用来评估算法运行效率的一个东西(所用时间)
类比生活中的一些事情,比如:眨眼——一瞬间、口算题——几秒、烧水——几分钟
自己总结来说就是不同数量级的时间计量单位。
print(\'Hello World!\') #O(1) 注意:此种形式即使多行,时间复杂度不变 for i in range(n): #O(n) 循环n次 print(\'Hello World!\') for i in range(n): #O(n*n) 循环n*n次 for j in range(n): print(\'Hello World!\') for i in range(n): #O(n*n*n) 循环n*n*n次 for j in range(n): for k in range(n): print(\'Hello World!\')
note:数量级意味着在上述过程中,不受一行/几行的影响
* 时间复杂度时用来估计算法运行时间的一个式子
* 一般来说,时间复杂度高的算法比复杂度低的算法慢
* 常见的时间复杂度(按效率排序)
O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n2logn) < O(n3)
* 如何一眼判断时间复杂度
循环减半的过程-> O(logn)
几次循环就是n的几次方的复杂度
空间复杂度:用来评估算法内存占用大小的一个式子(所占空间)
“空间换时间”
以上是关于01. 算法介绍与列表查询的主要内容,如果未能解决你的问题,请参考以下文章
你如何在 python 中处理 graphql 查询和片段?