数据结构和算法

本文探讨了Python数据结构和算法的重要性,详细介绍了算法分析,包括实验研究、不同函数增长率的比较、大O符号的解释以及算法运行时间的比较。通过实例展示了常量时间操作在Python列表中的应用,其运行时间复杂度为O(1)。
摘要由CSDN通过智能技术生成

##Python数据结构和算法

#####前言:数据结构和算法是编程的精髓所在。


版权声明:本文为博主原创文章,欢迎转载,但必须标识出处,且在文章明显位置给出原文链接


####(一)算法分析


前言:数据结构是组织和访问数据的一种系统化方式,算法实在有限时间里一步步执行某些任务的过程。

#####(1)实验研究
1.主要分析算法的的方法是运行时间和空间利用的表示
Python中可以使用time模块的time()函数,记录算法运行前的那一刻以计算法执行完成后的那一刻,并计算他们之间的差距。

from time import time
start_time=time()
run algorithm
end_time=time()
elapse=end_time-start_time

这种方法可以很好地反映出算法的效率,但是time()函数的测量是相对于"挂钟"的,很多进程共享使用CPU,所以更加准确地方法是使用CPU时钟周期数。通常运行时间依赖于输入的大小和结构。

2.计算原子操作
为了在没有进行实验时分析一个算法的执行时间,用一个高层次的算法描述直接进行分析(可以是代码片段也可以是伪代码),我们可以定义一系列原子操作。

从形式上来说,一个原子操作相当于一条低级别指令,执行时间是常数。可以简单地计算出算法的执行时间。因此,算法执行的原子操作作数t和算法的真是运行时间成正比。

3.最坏情况输入的研究
对于相同大小的输入,算法针对某些输入的运行速度比其他更快。如果把算法的运行时间表示为所有可能的相同大小的平均值的函数,进行平均情况的分析要求定义一组概率分布ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值