第二讲 算法入门与函数增长_947005446.pdfVIP

  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文档。上传文档
查看更多
第二讲 算法入门与函数增长_947005446

第二讲算法入门与函数增长 《算法与算法复杂性》2011年春季 赵颖 摸底的情况 第二题:88%正确。分析递归函数,并进 行简化。 第三题:76%正确。描述FIFO以及最大 堆的结构。 第四题:83.3%人正确。计算简单的概率。 第五题:77%人正确。分析一些简单操作 的时间复杂度。 第六题:29%正确。写快速排序算法。 第二章算法入门 伪代码中的约定 循环不变式 算法分析技术(RAM模型) 最坏情况和平均情况分析 算法设计的方法(增量方法和分治法) 分治法分析(下次课) 2.1插入排序 排序问题 输入:n个数 〈a , a , . . .,a 〉 1 2 n 输出:输入序列的一个排列(重新排序) 〈a’ , 1 a’ , . . .,a’ 〉,使得a’ ≤ a’ ≤ . . . ≤ a’ 2 n 1 2 n 插入排序算法思想: 与打牌一样 摸起一张牌 将它插入到左手一 把牌的正确位置 2.1插入排序 伪代码中的约定 1. 书写上的“缩进”表示程序中的分程序(程 序块)结构。 2. while,for,repeat等循环结构和if,then,else条 件结构与Pascal中相同,在退出循环后, 循环计数器的值仍然保持。 3. “▹”表示后面部分是个注释。 4. 多重赋值i←j←e是将表达式e的值赋给变量i 和j; 5. 变量(如i,j和key等)是局部于给定过程的。 在没有显式说明的情况下,我们不使用全 局变量。 2.1插入排序 伪代码中的约定(续) 6. 数组元素是通过 “数组名[下标]”这样的形式来访 问的。符号“..”用来表示数组中的一个取值范围, 例如: A[1..j]就表示A 的一个子数组,它包含了j个元 素A[1] ,A[2] ,…,A[j] 。 7. 复合数据一般组织成对象,它们是由属性或域所组 成的。域的访问是由域名后跟由方括号括住的对象 名形式来表示。例如: 数组可以被看作是一个对象, 其属性有length,表示数组中元素的个数,如 length[A]就表示数组A 中的元素个数。 用于表示一个对象的变量被看做是指向该对象的一 个指针! 2.1插入排序 伪代码中的约定(续) 8. 参数采用按值传递方式,当对象被传递时,实际 传递的是一个指向该对象数据的指针,而对象的 各个域则不被拷贝。例如,如果x是某个被调用过 程的参数,在被调过程中的赋值x←y对主调过程 来说是不可见的。但是,赋值f[x]←3却是可见的。 9. 布尔运算符“and”和“or”都具有短路能力。 x NIL and f [x ] y 不需要当我们试图在x为NIL时计算f[x] 2.1插入排序 插入排序伪代码: INSERTION-SORT(A) 1 for j ← 2 to length[A] 2 do key ← A[j ] 3 ▹Insert A[j ] into the sorted sequence A[1 ‥ j - 1]. 4 i ← j – 1 5

文档评论(0)

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

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

1亿VIP精品文档

相关文档