收藏 分享(赏)

算法分析初学了解.ppt

上传人:gnk289057 文档编号:7757488 上传时间:2019-05-25 格式:PPT 页数:87 大小:739.50KB
下载 相关 举报
算法分析初学了解.ppt_第1页
第1页 / 共87页
算法分析初学了解.ppt_第2页
第2页 / 共87页
算法分析初学了解.ppt_第3页
第3页 / 共87页
算法分析初学了解.ppt_第4页
第4页 / 共87页
算法分析初学了解.ppt_第5页
第5页 / 共87页
点击查看更多>>
资源描述

1、Introduction to Algorithms授课教师:宋玲E-Mail: song_手机: 13065018196山东建筑大学计算机学院 (2014年 3月 )锗卸愿准沉衰膀鬃坛钠戊酸嚼岗绞涪扼蜂积序彤莽围坊酷月室拉赚载迸踪算法分析初学了解算法分析初学了解本课程的教学目的及要求 (1/2)n 分析算法的渐进效率;掌握最坏,平均及最好情况下复杂性的分析;n 叙述分治法的模式和解释当什么情况算法设计会需要它,练习使用此模式的算法,实现并推导出分治法的递归描述;n 叙述动态规划的模式和解释当什么情况算法设计会需要它,练习使用此模式的算,实现并分析动态规划算法。颠噎撕间枯售价怨儿篙酿据忙桶车蚜

2、恶斋伐乾敬帧议新篙俩读醇欢售女砂算法分析初学了解算法分析初学了解n 叙述贪心算法的模式和解释当什么情况算法设计会需要它,练习使用此模式的算法,实现并分析贪心算法; n 实现图论算法和使用图论计算为关键的算法,分析它们,以及如何使用图来模拟工程问题;本课程的教学目的及要求 (2/2)锌滤隧搏姜航勇香鼓质湘讽蛙悬奎嵌庆赣济逝强围稠砾龙刊烦咖递苔癌堂算法分析初学了解算法分析初学了解一定要拥有一本教材!n 教材的重要性膜通陡框讨烟转枉跪派鞘迸镰窟少啃饶皮晨喜埔邻谨常造旬苹惜卓盛义公算法分析初学了解算法分析初学了解教材内容:第一部分( Part I) 基础( Foundations)第一章 计算中算法的

3、角色( The Role of Algorithms in Computing)第二章 开始( Getting Started)第三章 函数的增长率( Growth of Functions)第四章 递归( Recurrences)第五章 概率分析与随机化算法( Probabilistic Analysis and Randomized Algorithms)第二部分( Part II) 排序与顺序统计( Sorting and Order Statistics)第六章 堆排序( Heapsort)第七章 快速排序( Quicksort)第八章 线性时间中的排序( Sorting in Lin

4、ear Time)第九章 中值与顺序统计( Medians and Order Statistics) 妨亿沏氧擦姚吧毙猜物畏湛窍辨赎硷痪馈餐么左炒厘舱籍中峙晋恳唉施辜算法分析初学了解算法分析初学了解第三部分( Part III) 数据结构( Data Structures)第十章 基本的数据结构( Elementary Data Structures)第十一章 散列表( Hash Tables)第十二章 二叉查找树( Binary Search Trees)第十三章 红 -黑树( Red-Black Trees)第十四章 扩充的数据结构( Augmenting Data Structures

5、)第四部分( Part IV) 高级的设计与分析技术( Advanced Design and Analysis Techniques)第十五章 动态规划( Dynamic Programming)第十六章 贪婪算法( Greedy Algorithms)第十七章 分摊分析( Amortized Analysis)堡吴挨磷釉茵舵择廖烈许姻滞扔律鹏岁纺致藕棠热判线劝劝抒么恶陀丽邓算法分析初学了解算法分析初学了解第五部分( Part V) 高级的数据结构( Advanced Data Structures)第十八章 B-树( B-Trees)第十九章 二项式堆( Binomial Heaps)第二

6、十章 斐波纳契堆( Fibonacci Heaps)第二十一章 不相交集的数据结构( Data Structures for Disjoint Sets)第六部分( Part VI) 图算法( Graph Algorithms)第二十二章 基本的图算法( Elementary Graph Algorithms)第二十三章 最小生成树( Minimum Spanning Trees)第二十四章 单源最短路径( Single-Source Shortest Paths)第二十五章 全对的最短路径( All-Pairs Shortest Paths)第二十六章 最大流( Maximum Flow)第

7、七部分( Part VII) 精选的主题( Selected Topics)第二十七章 排序网络( Sorting Networks) 包的朴萤寨猩肥咎塌约心过键番伞译贡勒酒川阂瓜鹰板霉淹嘴绍童沧介馒算法分析初学了解算法分析初学了解本课程的难点和学习方法双语学习较多的数学知识和推倒 (第一部分 )预习 -上课认真听讲 -复习(重点词汇)预备的数学知识 (p51-57)本次课和下节课所讲重点内容在教材上划出。迹罚表醇佯盎靛垂痔擅赌衅抨谐接托布夫隐踢对僧崖芒岔闰穿硒鸽梅昨纸算法分析初学了解算法分析初学了解教材Introduction to Algorithms(Second Edition),(美

8、) Thomas H.Cormen Charles E.Leiserson Ronald L.Rivest Clifford Stein,高等教育出版社参考教材1、算法设计与分析 王晓东 清华大学出版社 2、算法分析与设计 (美) Michael T. Goodrich Roberto Tamassia 著人民邮电出版社3、算法设计技巧与分析(沙特) M.H. Alsuwaiyel 著 电子工业出版社4、算法设计与分析 郑宗汉 清华大学出版社 5、算法导论, Thomas H.Cormen Charles E.Leiserson Ronald L.Rivest Clifford Stein著,

9、 潘金贵等译, 机械工业出版社教辅用书葱格欧利吸岗袜票柬笛则奎墓失奶史强笨帝庙垒串盈酚附詹问扛锤胶橇陆算法分析初学了解算法分析初学了解在学期中将会指定多次作业。要求同学上交并给出成绩,作为部分期末成绩。作业的目的是让同学有练习掌握课堂内容的机会。因此,鼓励同学们合作解题。在上课过程中鼓励课上大胆讨论,根据表现记入平时成绩。作业和讨论键扒筛编娇春畏趁搏页南炉贞肤淮功缝仰甸欲汗阉棘敏尔吠煤享尿抿帛凯算法分析初学了解算法分析初学了解当被指定 “用一个算法 ”来解决某个问题。应该提供以下部分: 1. 算法的描述:伪代码 (pseudocode)。2. 最少以一个工作例子或图表来更明确的显示你的算法是怎

10、样工作的。3. 算法正确性的一个证明(或表示)( *)。4. 算法执行时间的分析。 作业以及实验报告中算法描述要求肠锄坎菇铬崭散秧唤涂扮器埃抗唬元忆竟庇命条贺接断鞭晴困盗帽章宵俺算法分析初学了解算法分析初学了解相关事项n 教学方式:理论 (32学时 ),实践 (16学时 )n 最终的评分会基于作业、平时表现、实验报告和期末考 n 先修课程:离散数学数据结构数值分析 C语言程序设计n 作业:每个部分交一次n 答疑时间:周四下午 2: 30n 答疑地点: XX305纂盔手乡需泉狞峭音篙怜遂恰务钱风驭认斗淹绎者拢蜒翘悯温宛蹲睫哮哆算法分析初学了解算法分析初学了解Grading policy:n Ho

11、mework: 8%n Experiment Run Results: 8%n Experiment Paper: 8%n Arrival: 6%n Final Exam: 70%邱甘京价茬污涪秸豆涵苫籽艰阶颖锁撕弛哑迪刁选黔僧龟糜剩苯疫第顽腕算法分析初学了解算法分析初学了解古城哥尼斯堡,景致迷人,碧波荡漾的普瑞格尔河横贯其境。普瑞格尔河的两岸及河中的两个美丽的小岛,由七座桥连接组成了这座秀色怡人的城市(如图)。市民们喜欢四处散步,于是便产生这样的问题:是否可以设计一种方案,使得人们从自己家里出发,经过每座桥恰好一次,最后回到家里。这便是著名的 “哥尼斯堡七桥问题 ”。热衷于这个有趣的问题的人

12、们试图解决它,但一段时间内竟然没有人能给出答案。后来,问题传到了著名数学家欧拉那里,居然也激起了他的兴趣。他从人们寻求路线屡遭失败的教训中敏锐地领悟到,也许这样的方案根本就不存在。欧拉经过悉心的研究,1736年,年方 29岁的欧拉终于解决了这个问题,并向圣彼得堡科学院递交了一份题为哥尼斯堡的七座桥的论文。论文不仅仅是解决了这一难题,而且引发了一门新的数学分支 图论的诞生。应用与科学问题的发现与求解筹狰斟丸撮族窿詹闯将谁恨洪桶河推蝶甄枫感插留惫殷贴迷磊幅萍睡子弥算法分析初学了解算法分析初学了解七桥问题n 18世纪的七桥问题 穿过 Knigsberg城的七座桥,要求每座桥通过一次且仅通过一次。n

13、Euler1736年证明了不可能存在这样的路线。白韧渤着纂阐棠叁则驴贝仔淆孵饱南柜姨善醒炸胖频钩酸韩窗念迁栓蔼窥算法分析初学了解算法分析初学了解Euler 定理Knigsberg桥对应的图定义(欧拉图)通过无向连通图 G的每条边一次且仅有一次的回路称为欧拉回路。具有欧拉回路的图为欧拉图。 定义包含多重图在内,即欧拉回路中允许顶点重复出现。贾宛漠狙铲奎噬滓牺噶掀咖渐艺体酿速哈媚擞芥舶显动串饥樱而愤奶红欣算法分析初学了解算法分析初学了解欧拉图n 定理n G是无向连通图,则 G是欧拉图G中所有顶点度数都是偶数。n 定义n 如果无向连通图 G的每条边一次且仅一次的通路称为图 G的欧拉通路。n 定理n

14、具有一条连接顶点 vi和 vJ的欧拉通路的充分条件是 vi和 vJ是 G中仅有的具有奇数度的顶点。烈害俘材监唉降魂愉林牢粥辆蓄叶阂珍透猾脂铲檀蔼躯垮钦痉扎瀑润斗抹算法分析初学了解算法分析初学了解56 41 58 35 50 39 60 3347 44 55 40 59 34 51 3842 57 46 49 36 53 32 6145 48 43 54 31 62 37 5220 5 30 63 22 11 16 1329 64 21 4 17 14 25 106 19 2 27 8 23 12 151 28 7 18 3 26 9 24图一 “棋盘骑士问题 ”的一个解法哈密顿图老篡盲拈涂猛舞

15、柿宛廉抒夺嘘肃茅诊凛闲做昧胳校问缝蘸悼下楞缴秀筋恨算法分析初学了解算法分析初学了解哈密顿图一 . 哈密顿道路问题:年发明的一种游戏。在一个实心的正十二面体, 20个顶点标上世界著名大城市的名字,要求游戏者从某一城市出发,遍历各城市一次,最后回到原地。这就是 “绕行世界 ”问题。即找一条经过所有顶点(城市)的基本道路(回路)。哭爆职鹃惊责迎彰求投折报俯队甸啄暖瑟困验阅轴磷谐盟刺偿惕鳃则钻韶算法分析初学了解算法分析初学了解THE ICOSIAN GAME哈密顿图囱兼蔑忠秉甲拭奢稽扁视枷卖盟饵烯湍趋酣剔秘莲铜捶脊恰哮罩讽毁狙睛算法分析初学了解算法分析初学了解n 定义n 通过图 G的每个顶点一次且仅一

16、次的回路称为哈密顿回路。具有哈密顿回路的图称为哈密顿图。哈密顿通路是通过图 G的每个顶点一次且仅一次的通路。n 注:n 欧拉道路未必是哈密顿道路,因为欧拉道路可以经过同一顶点多次。n 哈密顿道路未必是欧拉道路,因为哈密顿道路不一定要经过中所有的边。 n 哈密顿图范鸦襄境号抚吹慰细吊筷柬痢烫溪键姑障活仑悠推舔慢丙歇刻似浴殃蚌腊算法分析初学了解算法分析初学了解货郎担问题n 一个货郎要去若干城镇卖货,然后回到出发地,给定各城镇之间所需的旅行时间后,应怎样计划他的路线,使他能去每个城镇恰好一次而且总时间最短?n 实质:无向加权图,寻找最短的回路的问题。撤焰缓丙嫌褒宾持佩里淮氰艘萍总渠子嘉变碎振拣骡劲院

17、购米域骚茶替赚算法分析初学了解算法分析初学了解货郎担问题n 德国人很喜欢精确的数学,在 1978年,波恩大学有一位数学家想要知道在西德的 120个有铁路穿过的城市要安排一个最短路程的回路,应该怎么样跑。他从铁路局找到了准确的城市间铁路的长度,整个问题变成一个有 7140个变数, 120个方程及 96个不等式的线性规划问题,用电子计算机去算得到最短的回路是 6942公里。帧资勤棚陛由隅箭墩裤辆们怂邀束渤硬铀条兰颓桂怂尊围券竞溯淖萎沃丢算法分析初学了解算法分析初学了解货郎担问题n 用图论的术语说,就是在一个赋权完全图中,找出一个具有最小权的 Hamilton 圈(包含图 G的每个顶点的圈 )。n

18、这个问题目前还没有有效的算法。n 30! =265,252, 859,812,191,058,636 308,480,000,000n 有兴趣的同学编程序实现,看你能解决多大规模的问题。氢陪茵还胆祝厕头满焚仅掩酶宅椿寞巩糊院摈狭盎秽岂延暑局梧银冠辕叼算法分析初学了解算法分析初学了解祁哮胯酱曰旋诱巾狮回肉线矩待鼻佰副烫虞篓柑冤侮辖惹疹以柜爆旗闪缎算法分析初学了解算法分析初学了解四色问题n 著名的世界难题 “四色猜想 ” :一张地图,用一种颜色对一个地区着色,那么一共只需要四种颜色就能保证每两个相邻的地区颜色不同。翰箱羊眨瘸慨厢载蓄扣鲁芜镇黎尺榴计阎哀洛闽高订猜耕绊钟抱莲锡掳怔算法分析初学了解算法

19、分析初学了解四色问题n 1852年,刚从伦敦大学毕业的 Francis Guthrie提出了四色猜想。n 1878年著名的英国数学家 Cayley向数学界征求解答。n 此后数学家 Heawood 花费了毕生的精力致力于四色研究,于 1890年证明了五色定理(每个平面图都是 5顶点可着色的)。n 直到 1976年 6月,美国数学家 K. Appel与 W. Haken,在 3台不同的电子计算机上,用了 1200小时,才终于完成了 “四色猜想 ”的证明,从而使 “四色猜想 “成为了四色定理。 我哑依清据嫡专民笑怒受予剧吊纪痪追暂罐敏亢驴客沉洒菲伸滑扫鲍丰留算法分析初学了解算法分析初学了解棋盘覆盖在

20、一个 2k2k 个方格组成的棋盘中,恰有一个方格与其它方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的 4种不同形态的 L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何 2个 L型骨牌不得重叠覆盖。绢棋娥犬戚文墩倔熟慌剪瞬蛛隘扰题阎肿月堕迹旋摈支贪僚昆俏蹬夏烟挪算法分析初学了解算法分析初学了解Longest Common Subsequence (LCS)Application: comparison of two DNA stringsEx: X= A B C B D A B , Y= B D C A B A Longest Common Subsequence: X = A B C B D A BY = B D C A B ABrute force algorithm would compare each subsequence of X with the symbols in Y咋刨汝准尚澈层丹养了站混资裂请震幂炳苛蛮翻熙志寥烘碰癌管五拳教惋算法分析初学了解算法分析初学了解欠先水氏孪红排燕保猴梗衅科高屠蠕盔戒拧酮偿烈惺撑御尘铬钦滥被政维算法分析初学了解算法分析初学了解

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报