还剩24页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《递归与分治》ppt课件•引言•递归•分治•递归与分治的比较•案例分析•总结与展望01引言课程介绍010203课程目标适用对象课程大纲介绍递归与分治的基本概计算机科学、软件工程等递归与分治的定义、原理、念、原理和应用,培养学相关专业的本科生和研究应用和案例分析生在算法设计和问题解决生方面的能力递归与分治的定义递归一个函数直接或间接调用自身的过程递归通常用于解决可以分解为更小的子问题的问题分治将一个复杂的问题分解为两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,最终将子问题的解合并得到原问题的解递归与分治的重要性递归与分治是计算机科学和软件工程中非常重要的算法设计方法,它们能够将复杂问题简化,提高问题解决的效率递归与分治的思想在数据结构、算法设计、计算机图形学、人工智能等领域都有广泛的应用,掌握递归与分治对于提高学生的算法设计和问题解决能力具有重要意义02递归递归的定义与原理递归是指在函数或算法中直接或递归的基本原理是将问题分解为递归的实质是分治策略的应用,间接调用自身的一种方法更小的子问题,直到子问题可以即将大问题分解为小问题,再将轻易解决,然后通过子问题的解小问题的解组合成大问题的解来求解原问题递归的分类01020304直接递归间接递归多层递归无限递归函数直接调用自身函数通过调用其他函数间接调一个函数调用自身多次,形成函数无限制地调用自身,可能用自身多层嵌套导致程序崩溃递归的应用场景树形结构排序算法分治算法分支限界算法如二叉树的前序、中序、如快速排序、归并排序如合并排序、快速傅里如回溯算法、剪枝算法后序遍历等叶变换等等03分治分治的原理与思想原理将一个复杂的问题分解为两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并思想化大为小、逐级递归、先分后治分治的分类根据分治策略的不同,可以将分治算法分为分分治法将原问题分解为若干个规模较小,相互治法、分割法、分治与分割结合法独立,与原问题形式相同的子问题,递归地解这些子问题,然后再将子问题的解合并得到原问题的解分割法将原问题分割成若干个规模较小,相互分治与分割结合法将原问题分解为若干个规模独立,与原问题形式不同的子问题,递归地解这较小,相互独立,与原问题形式不同的子问题,些子问题,然后将子问题的解合并得到原问题的递归地解这些子问题,然后将子问题的解合并得解到原问题的解分治的应用场景排序算法快速排序、归并排序等查找算法折半查找等计算几何凸包问题、二维区域填充等04递归与分治的比较递归与分治的相似之处递归与分治都需要对子问题进行求解,递归与分治都是解决问题的算法思想并将结果组合起来得到原问题的解递归与分治都涉及到将问题分解为更小的子问题递归与分治的不同之处递归是直接将问题分解为子问题,然后逐个求解子问题,最后将子问题的解组合起来得到原问题的解而分治则是将问题分解为多个子问题,然后将子问题组合起来进行求解递归的每个子问题都与原问题相似,而分治的子问题可能完全不同递归的每个子问题都只涉及到原问题的一个部分,而分治的子问题可能涉及到原问题的多个部分递归与分治的适用场景递归适用于问题可以被清晰地分解为简单的子问题,并且子问题的解可以直接组合得到原问题的解的情况例如,阶乘、斐波那契数列等计算问题分治适用于问题可以被分解为多个独立的子问题,并且子问题的解需要被重新组合以得到原问题的解的情况例如,归并排序、快速排序等排序问题05案例分析斐波那契数列的递归实现递归定义Fn=Fn-1+Fn-2时间复杂度O2^n,效率较低适用场景问题规模较小,无需优化二分搜索的分治实现分治策略将数组分为两部分,分别在左半部分和右半部分查找目标值时间复杂度Olog n适用场景有序数组,查找目标值归并排序的递归与分治实现对比递归实现时间复杂度将数组分为两部分,分别排序递归实现为On^2,分治实现后再合并为On logn分治实现适用场景通过比较和交换,将数组分为大规模数据排序,需要优化算有序和无序部分,逐步合并有法性能序部分06总结与展望递归与分治的总结递归概念递归是一种解决问题的方法,通过将问题分解为更小的子问题来解决在算法设计中,递归通常用于简化复杂问题的处理分治概念分治策略是将问题分解为若干个子问题,分别解决这些子问题,然后将子问题的解合并以得到原问题的解分治算法的典型例子包括归并排序和快速排序递归与分治的联系递归和分治都是解决问题的重要策略,它们在很多情况下可以相互转换递归更侧重于问题的分解和解决过程,而分治更强调子问题的独立解决和合并递归与分治的未来发展应用领域拓展01随着技术的发展,递归和分治的应用领域将不断扩大例如,在人工智能、机器学习、大数据处理等领域,递归和分治算法将发挥越来越重要的作用算法优化与改进02随着问题的复杂性和规模的增加,对递归和分治算法的性能要求也越来越高未来将不断有新的算法优化和改进方法出现,以提高算法的效率和稳定性理论深入研究03对于递归和分治算法的理论基础,未来将有更深入的研究和理解这有助于更好地应用这些算法解决实际问题,并推动相关领域的发展THANKS感谢观看。
个人认证
优秀文档
获得点赞 0