- 1、本文档共117页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四讲 算法与数据结构.ppt
算法的基本要求: 正确 易维护(可读,易修改) 方便使用 高效 速度快 运行时间少,时间复杂度低 占用内存少 空间复杂度低 算法的效率可以测试,用大量输入数据测量运行的时间和占用的内存,通过比较判别和选择效率高的算法 更重要的是编程前的分析和估计,即理论的计算,给出事前的判断 4、算法:递归、排序、查找 递归——一个关于递归的故事 一个没有去过北京的人问:天安门是什么样子?去过北京的人答道:天安门有个城楼,城楼上有个国徽,国徽里有个天安门,天安门有个城楼,城楼上有个国徽,国徽里有个天安门, …… 4、算法:递归、排序、查找 ——递归 4、算法:递归、排序、查找 ——递归 递归是常用的编程技术,其基本思想是“自己调用自己”。 数学上最常见、最简单的递归问题就是自然数的阶乘。 n=1 n! = 1; n1 n! = n * (n-1)!; 适合用递归方法求解的问题 有一个初始状态 后续的情况可由前面的状态推出 如Fibonacci数列 F1 = F2 = 1; Fn = Fn-1 + Fn-2 (n=3) 递归与循环 long Fibonacci(int n) { if( n==1|| n==2 ) return 1; else return Factorial(n-1) + Factorial(n-2) ; } long Fibonacci(int n) { int i; long f1,f2,fn; if( n==1|| n==2 ) return 1; f1 = 1; f2 = 1; for( i=3; i=n; i++) { fn = f1 + f2; f1 = f2; f2 = fn; } return fn; } 4、算法:递归、排序、查找 ——递归 递归问题欣赏 河内塔( Hanoi Tower)问题:这是一个流传很久的游戏。 1. 有三根杆子A,B,C。A杆上有n只碟子 2. 每次移动一块碟子,小的只能叠在大的上面 3. 把所有碟子从A杆经C杆全部移到B杆上. 递归求解: 1. 若只有一只碟子,直接将它从A杆移到B杆; 2. 把n-1只碟子从A杆经B杆移动到C杆,将A杆上第n只碟子移到B杆;然后再将n-1只碟子从C杆经A杆移到B杆。 4、算法:递归、排序、查找 ——递归 此外,递归是人工智能语言Lisp/Prolog等进行问题求解的基本手段。 递归问题欣赏 8皇后问题:把8个皇后放在8 x 8的棋盘上,使得任何一个都不将其他7个的军。 骑士巡游问题:给出一个n x n的棋盘,一位骑士按国际象棋的规则移动——放在第(0,0)格里,找出一种可以走遍整个棋盘的方案(如果存在的话)。即做n2-1次移动,使得棋盘上每个格子都恰好只被访问一次。 4、算法:递归、排序、查找 ——递归 4、算法:递归、排序、查找 ——排序 排序是指对一些数据信息的重新组织,通常是对一个数组进行重新操作,使得信息由大到小(降序)或者由小到大(升序)存储。要求排序是很一种基本的需要。我们所感兴趣的是如何寻找到一个好的办法来进行排序。 就地排序算法:不增加新的存储空间 1、插入排序法(Insert Sort) 将一个数插入到序列中的合适位置。 2、选择排序法(Selection Sort) 每次把最小(大)的元素交换到最前面。 3、冒泡排序法(Bubble Sort) 比较并交换相邻的元素,直到所有元素都被放到合适的位置。 4、算法:递归、排序、查找 ——排序 4、算法:递归、排序、查找 ——排序:插入排序(思想) 4、算法:递归、排序、查找 ——排序:插入排序(算法) int a[] = {19, 2, 35, -6, -12, 5, 23, 16, 9, 0}; int i,j,k; int x; for(i=1; i a.length; i++) // a.length-1轮插入排序 { x = a[i]; j = i-1; while( j = 0 x a[j] ) { a[j+1] = a[j]; j--; } a[j+1] = x; } Worst case 递增/递减 Comparison = n(n-1)/2 Average ~= n(n-
您可能关注的文档
- 第十一章 图层编辑操作.ppt
- 第十一章 新闻受众心理概述.ppt
- 第十一章 氨基树脂.ppt
- 第十一章物流企业质量管理.ppt
- 第十一章:组织形象管理.ppt
- 第十一讲 结构体与共同体.ppt
- 第十七章 滚动轴承(最新).ppt
- 第十七章 物流企业项目管理.ppt
- 第十三章+经济增长.ppt
- 第十三章_排序.ppt
- 北师大版(2024)八年级数学上册课件 3.2 平面直角坐标系 第2课时 点的坐标特征.pptx
- 北师大版(2024)八年级数学上册课件 3.2 平面直角坐标系 第3课时 建立适当的平面直角坐标系.pptx
- 北师大版(2024)八年级数学上册课件 4.3 一次函数的图象 第1课时 正比例函数的图象及性质.pptx
- (人教A版数学选择性必修三)讲义第15讲7.1.1条件概率(学生版+解析).docx
- (人教A版数学选择性必修三)讲义第19讲8.1成对数据的统计相关性(8.1.1变量的相关关系+8.1.2样本相关系数)(学生版+解析).docx
- 北师大版(2024)八年级数学上册课件 5.2 二元一次方程组的解法 第2课时 加减消元法.pptx
- (人教A版数学选择性必修一)2025年秋季学期讲义第01讲1.1.1空间向量及其线性运算(学生版+教师版).docx
- 北师大版(2024)八年级数学上册课件 5.2 二元一次方程组的解法 第1课时 代入消元法.pptx
- 北师大版(2024)八年级数学上册课件 5.3 二元一次方程组的应用 第3课时 二元一次方程组的应用(3).pptx
- 北师大版(2024)八年级数学上册课件 5.4 二元一次方程与一次函数 第2课时 用二元一次方程组确定一次函数表达式.pptx
文档评论(0)