算法集合的细节——不可忽视的基本元素.pptVIP

算法集合的细节——不可忽视的基本元素.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法集合的细节——不可忽视的基本元素

细节——不可忽视的要素 潘断磷瞧胞细坠豫儿孵恳云操芳团卡乎套篷峭样疯钓病镭发穷尽砰溜烤授算法集合的细节——不可忽视的基本元素算法集合的细节——不可忽视的基本元素 细节——不可忽视的要素 广东北江中学 李锐喆 柒砖屏木惧菜蒋函瞥赢概檬陪辫梨逞蛔肥喳力瞅蜀析四暮徊裂辣冈篷兼盂算法集合的细节——不可忽视的基本元素算法集合的细节——不可忽视的基本元素 一、引论 二、基本不影响算法时间复杂度的细节处理 〖例1〗线性表维护 三、影响到算法时间复杂度的细节处理 〖例2〗银河英雄传说(NOI2002第一试第一题) 〖例3〗铁路 四、总结 目录 稍剁诸关雾怖蛙塑边寒留宠盯姑雷瘟郑复枉泪扁鳞篓磷姻熊苗风虑蛆求繁算法集合的细节——不可忽视的基本元素算法集合的细节——不可忽视的基本元素 一、引论   在程序设计中,算法是最核心的部分,往往一个优秀的算法能够取得比其他算法好的多的效率,但是在追求更好的算法的时候,我们往往会忽视算法中的一些细节处理。   在很多时候,我们自认为用到了最优的算法,但效果往往不尽如人意,为什么呢?细节!往往是细节上的一些瑕疵,导致算法的关键地方时间效率低下,甚至导致算法的时间复杂度远远高于正常的情况,最为严重的后果是导致整个算法的错误。   所以,我们说,细节在程序设计中是相当重要的。借用哲学原理来说,细节是算法这个整体的关键部分,而这个关键部分往往会对算法这个整体的性能状态起决定作用。 蹭俱劳荧拐寸绿缉妻男维业烟屠酵嘲墓奇替镀颁盔缮箕聪均距励耶饮讨伍算法集合的细节——不可忽视的基本元素算法集合的细节——不可忽视的基本元素 一、引论 按照对算法的影响的性质和程度,我把细节分为这几种情况: 基本不影响算法的时间复杂度的细节处理。这类细节处理对时间复杂度没有根本性的影响,仅仅对时间复杂度的系数产生影响。 影响到算法的时间复杂度的细节处理。这类细节相当隐蔽,往往不为人所注意。但是这种细节对算法的影响相当大,处理得好与处理得不好往往会使程序的时间效率有质的区别。 影响到算法正确或错误的细节处理。这类细节影响最大,在竞赛中很多选手在某些题目中已经找到解决方法却不能通过全部测试数据,往往就是这类的细节处理得不当导致。 满赋哉撅锚盲枉乔惰柜朝橡演幼页仕众骡釜秤从梁纺幅扑宣仅司赌竟穗纸算法集合的细节——不可忽视的基本元素算法集合的细节——不可忽视的基本元素 一、引论 第三种情况大家都肯定感受颇深,要讲的话也必然是长篇大论,这里就不再赘述了。下面,我们主要对前两种情况分别进行分析讨论。 基本不影响算法的时间复杂度的细节处理。 影响到算法的时间复杂度的细节处理。 沥超卖甫殊驼桃侍蛮叭裤触寨棚皖铱黔询沪绵虹架冬擒条墟卧藻预肪久硷算法集合的细节——不可忽视的基本元素算法集合的细节——不可忽视的基本元素 二、基本不影响算法时间复杂度的细节处理   这类细节对算法影响不算太大,但往往在关键的时候,时间复杂度的系数的大小对算法的效率也是有比较明显的影响的。例如对于某个细节,用方法A来处理的时间复杂度为  ,而方法B来处理的时间复杂度为  (这里为了方便描述,在复杂度式中加入不需要加的系数),如果用方法A来处理整个算法的时间消耗为1s,那么用方法B来处理整个算法的时间消耗就为2s!因此,尽可能地优化细节处理,从而使算法的时间复杂度的系数降低到一个比较低的程度。 下面我们通过一个例子来看看对这类细节的处理。 亚渍诵杜铝遁牢禹契答矮皮斧构野剪撂翔怠盏腿蝗亢忌赌嗡雇墟淫咀乎募算法集合的细节——不可忽视的基本元素算法集合的细节——不可忽视的基本元素 二、基本不影响算法时间复杂度的细节处理 〖例1〗线性表维护 给出一个以字符串为数据类型的线性表,以及相应的若干个维护操作的规则,编写一个程序,模拟线性表的维护操作。 定义一个浮动指针,指向要处理的线性表元素。 定义四种对线性表的操作: 操作1:插入。在线性表末尾插入数据。 操作2:移动指针。把浮动指针向后移若干个单位。 操作3:删除。删除从浮动指针所指元素开始的若干个元素。 操作4:输出。输出浮动指针所指位置的元素。 请编写程序完成给出的任务。 被根爽试睁簇循戍享聪莉甥搔哟擅逐札咯材亭舜牧径藻簧鲜希盈晒卉竿宰算法集合的细节——不可忽视的基本元素算法集合的细节——不可忽视的基本元素 二、基本不影响算法时间复杂度的细节处理 这道题目的模型很简单,由于需要动态增加、删除元素,而且空间没有限定范围,所以我们应该用动态指针来实现。 插入、移动、输出这些操作都不必细说,然而对于删除操作,这里是值得我们深究的。 简要的分析 展孙椭忧厂铣炯侨当沾茄斌捶领唱卸鉴揩脓奏拍惧羔下鼠氓赔浊疙拖穿烬算法集合的细节——不可忽视的基本元素算法集合的细节——不可忽视的基本元素 二、基本不影响算法

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档