- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
复习 算法具有的若干共有的性质 输入、输出、确定性、正确性、有限性、有效性、通用性 求整数序列最大元算法 线性搜索算法 对分搜索算法 复习 三分搜索法 练习题 求一个序列中所有整数之和的算法; Procedure sum (a1,…,an: 整数) sum :=a1; for i :=2 to n sum :=sum+ai {sum 为所有整数的和} 练习题 给出一个算法,逐一检查位串中每个字位是否为1,计算其中1的个数; Procedure ones (a=a1…an, a:位串) ones :=0 for i :=1 to n if ai :=1 then ones :=ones+1 {ones为位串a中1的个数} 练习题 给出一个求有限自然数序列中最小整数的算法; Procedure min (a1,a2,…,an:自然数) min :=a1 for i :=2 to n if minai then min :=ai {min是最小整数} 练习题 确定有限整数序列中最大元素首次出现的位置的算法,其中的整数不必互不相同; Procedure first largest (a1,…,an: 整数) max :=a1 location :=1 for i :=2 to n if maxai, then 练习题 确定有限整数序列中最大元素首次出现的位置的算法,其中的整数不必互不相同; if maxai, then begin max :=ai location :=i end {location为最大元素首次出现的位置} 2.2 算法的复杂性Complexity of Algorithms 一、引言 什么时候算法对问题提供令人满意的解? 它必须给出正确的答案; 它必须有效率。 怎样分析算法的效率呢? 计算机按此算法解题所花的时间; 计算机实现这一算法需要多大内存(假定输入值的规模是一定的)。 一、引言 算法的计算复杂性 算法的时间复杂性 算法的空间复杂性 了解算法是1微秒、一分钟还是一亿年才能给出答案 必须能提供所需的内存 空间复杂性与实现算法时使用的特定数据结构紧密相关。 二、算法的时间复杂性 时间复杂性可以在输入规模一定的情况下用算法使用的运算次数来表示; 使用的运算包括整数比较、整数加法、整数乘法、整数除法等基本运算; 不用计算机实际使用时间来表示 不同的计算机需要的时间不同; 把运算分解成基本字位运算相当复杂。 二、算法的时间复杂性 例1:描述求集合最大元素的算法的时间复杂性。 用比较的次数作为其时间复杂性的度量; 让临时最大元素等于列表中的初始项; 做一次比较后判断尚未达到列表的终点; 临时最大元素和第二项比较,如果第二项大,就用第二项的值更新临时最大元素; 二、算法的时间复杂性 例1:描述求集合最大元素的算法的时间复杂性。 继续该过程,对表中的第二项到第n项都要做两次比较:一次判断尚未达到列表终点,一次判断是否需要更新临时最大元; 这一算法使用的比较次数为2(n-1); 因此,求n元集合最大值的算法的时间复杂性是O(n)。 二、算法的时间复杂性 例2:描述线性搜索的时间复杂性。 用比较的次数作为其时间复杂性的度量; 每次循环都做两次比较:一次判断是否已到表的终点,一次比较x和表中的一个项; 最后还要在循环外做一次比较; 于是,当x=ai时,需要做2i+1次比较; 当x不在表中时,需要2n+2次比较(多了一次用于脱离循环的比较); 二、算法的时间复杂性 例2:描述线性搜索的时间复杂性。 所以当x不在表中时,共用了2n+2次比较; 所以线性搜索最多需要2n+2次比较; 其算法复杂性是O(n)。 这类复杂性分析是最坏情况分析。 把算法应用于一定规模的问题时最多需要多少次运算 二、算法的时间复杂性 例3:描述对分搜索的时间复杂性。 为了简化,设表a1,a2,…,an中有n=2k个元素,k=logn; 对于算法的每一阶段,首先判断i是否小于j,如果ij,再判断x是否大于搜索表的中间元素; 这样,每一阶段都做了两次比较; 二、算法的时间复杂性 例3:描述对分搜索的时间复杂性。 2k 2; 2k-1 2;…… 2k-(k-1) 2; 一共做了2k次比较; 再加一次i=j退出循环的比较; 再加一次循环外的比较(只剩一个元素时,其是否等于x); 二、算法的时间复杂性 例3:描述对分搜索的时间复杂性。 因此,当表中有n=2k个元素时,对分搜索2k+2=2log n+2次比较; 如果n不是2的幂,可以把其看做有2k+1个元素的大表的一部分; 其中k=?log n?, 2k+1个
您可能关注的文档
最近下载
- 《工程伦理》课件 第十二讲 “一带一路”与中国工程的跨文化交流.pptx VIP
- 公司员工考勤表.doc VIP
- 部编高教版 中职语文 基础模块上册《国家的儿子》课件.pptx VIP
- 2025年4月自考02318计算机组成原理答案含评分参考.docx VIP
- 《城里最漂亮的巨人》绘本故事ppt课件.ppt VIP
- 部编版道德与法治二年级上册《欢欢喜喜庆国庆》(精品课件).pptx VIP
- 人工智能赋能程序设计课程教学改革 .pdf VIP
- 第九讲:信息与大数据伦理问题-工程伦理.pptx VIP
- 中级财务会计(西南财经) 学堂在线测试答案.docx VIP
- 学习医学文献的检索与阅读技巧.pptx VIP
文档评论(0)