算法与数据结构算法时间效率的分析_第1页
算法与数据结构算法时间效率的分析_第2页
算法与数据结构算法时间效率的分析_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、算法与数据结构(1)-算法时间效率的分析概述数据结构和算法是一名程序开发人员的必备基本功,不是一朝一夕就能练成绝世高手的。冰冻三尺非一日之寒,需要我们平时不断的主动去学习积累。引入先来看一道题:如果a+b+c=1000,且aA2+b人2=cA2(a,b,c为自然数),如何求出所有a、b、c可能的组合?我们使用穷举法和枚举来分析:循环遍历abc满足条件的输出。代码如下:运行的结果是:我们看到运行代码消耗的时间为:1240.802592算法算法的概念:算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务。一般地,当算法在处理信息时,会从输入设备或数据

2、的存储地址读取数据,把结果写入输出设备或某个存储地址供以后再调用。算法是独立存在的一种解决问题的方法和思想。对于算法而言,实现的语言并不重要,重要的是思想。算法可以有不同的语言描述实现版本(如C描述、C+描述、Python描述等),我们现在是在用Python语言进行描述实现。算法的五大特征输入:算法具有0个或多个输入输出:算法至少有1个或多个输出有穷性:算法在有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以在可接受的时间内完成4确定性:算法中的每一步都有确定的含义,不会出现二义性5.可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完成再次分析前面题当我们遍历完a、b

3、,根据条件得知a+b+c=1000,所以我们不用再去遍历c,c=1000-a七修改后代码如下:运行的结果是:我们看到运行代码消耗的时间为:0.667052时间效率执行时间反应算法效率对于同一问题,我们给出了两种解决算法,在两种算法的实现中,我们对程序执行的时间进行了测算,发现两段程序执行的时间相差悬殊(1240.802592秒相比于0.667052秒),由此我们可以得出结论:实现算法程序的执行时间可以反应出算法的效率,即算法的优劣我们拿到这个代码运算时间差,去对比算法的效率,真的可靠吗?假设我们将第二次尝试的算法程序运行在一台配置古老性能低下的计算机中,情况会如何?很可能运行的时间并不会比在我

4、们的电脑中运行算法一的214.583347秒快多少。单纯依靠运行的时间来比较算法的优劣并不一定是客观准确的!程序的运行离不开计算机环境(包括硬件和操作系统),这些客观原因会影响程序运行的速度并反应在程序的执行时间上。那么如何才能客观的评判一个算法的优劣呢?基本运算单位分析代码效率我们假定计算机执行算法每一个基本操作的时间是固定的一个时间单位,那么有多少个基本操作就代表会花费多少时间单位。显然对于不同的机器环境而言,确切的单位时间是不同的,但是对于算法进行多少个基本操作(即花费多少时间单位)在规模数量级上却是相同的,由此可以忽略机器环境的影响而客观的反应算法的时间效率。然后来分析上面的代码:forainrangefe,1001):forbinrarge(6j1091):forcirrange(0j1061):10。诃、单位远箕ifaM2+b*+2=f*2anda+b+c=I960:科00010S:耳6Mc:i;000第一中词1眦个单艇算殆瞬共上呱?1咖巴+1)forairrangefB1601):forbinrangefS.1061-a):iod吩单庞算c=1000-a-bja加个軸aT=1000*1000*(44-5+1)第二种时间复杂ifa+*2+护*2=c*2:度为T2=10000

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论