Python数据结构与算法的示例分析

这篇文章主要为大家展示了“Python数据结构与算法的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python数据结构与算法的示例分析”这篇文章吧。


抽象概念
     
  • 程序 = 算法 + 数据结构
  • 程序设计语言为算法的实现提供了: 过程 和 数据结构
过程:控制结构——顺序、分支、循环数据结构:数据类型与数据间关系
计算资源      
计算资源的判别有两种来源:
  1. 内存资源和存储空间(不采用):这两者数据不容易获取
  2. 算法执行时间(不采用):受环境因素影响较大,同一程序不同环境运行时间不同
利用占用的空间资源:不好判别利用消耗的时间:受环境因素影响太大

大O表示法(衡量算法效率)      
  • 算法时间衡量指标:一个算法所实施的 操作数量/步骤数量
  • 操作数量/步骤数量的完美选择: 赋值语句
  • 一条赋值语句包含了 表达式变量存储两个基本资源
赋值语句越多,算法的运行时间越多,效率越低
  • 问题规模:影响算法执行效率的主要因素
  • 数量级函数:T(n),即 赋值语句数量函数
  • 大O表示法:等于T(n)中的主导部分,代表变化的强度
T(n) = n + 1:主导部分为n,1可以忽略,则大O表示法为O(n)T(m) = ㎡ + m + 1:主导部分为㎡,影响力最大,则大O表示法为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
指数

Python数据结构与算法的示例分析


例子2:计算算法效率
     
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数据结构与算法的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!