这篇文章主要为大家展示了“Python数据结构与算法的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python数据结构与算法的示例分析”这篇文章吧。
-
程序 = 算法 + 数据结构 -
程序设计语言为算法的实现提供了: 过程 和 数据结构
过程:控制结构——顺序、分支、循环数据结构:数据类型与数据间关系
-
内存资源和存储空间(不采用):这两者数据不容易获取 -
算法执行时间(不采用):受环境因素影响较大,同一程序不同环境运行时间不同
利用占用的空间资源:不好判别利用消耗的时间:受环境因素影响太大
↓
-
算法时间衡量指标:一个算法所实施的 操作数量/步骤数量 -
操作数量/步骤数量的完美选择: 赋值语句 -
一条赋值语句包含了 表达式 和 变量存储两个基本资源
赋值语句越多,算法的运行时间越多,效率越低
-
问题规模:影响算法执行效率的主要因素 -
数量级函数:T(n),即 赋值语句数量函数 -
大O表示法:等于T(n)中的主导部分,代表变化的强度
T(n) = n + 1:主导部分为n,1可以忽略,则大O表示法为O(n)T(m) = ㎡ + m + 1:主导部分为㎡,影响力最大,则大O表示法为O(㎡)
def sum(n): """求和函数""" theSum = 0 # 赋值语句1次 for i in range(1, n+1): # 赋值语句 n*1 次 theSum += 1 # 赋值语句1次 return theSum
函数赋值语句数量:f(n) = n + 1
-
求和问题的规模:n
-
数量级函数:T(n) = n + 1
-
算法效率(大O):O(n)
常见的大O数量级函数 | |
O(T(n)) | |
1 | 常数 |
log(n) | 对数,以2为底 |
n | 线性关系 |
nlog(n) | 线性对数,以2为底 |
n**2 | 平方 |
n***3 | 立方 |
2^n | 指数 |
a = 5 # 赋值语句1次
b = 6 # 赋值语句1次
c = 10 # 赋值语句1次
for i in range(n): # 赋值语句 n*n*3
for j in range(n):
x = i*i
y = j*j
z = i*j
for k in range(n): # 赋值语句n*2
w = a*k + 45
v = b*b
d = 33 # 赋值语句1次
函数赋值语句数量:f(n) = 3 + 3n^2 + 2n + 1= 3n^2+2n+4
-
问题规模:n^2
-
算法效率:O(n^2)
以上是“Python数据结构与算法的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/219920.html