山东理工大学:《计算机算法设计与分析》课程教学课件(PPT讲稿)第二章 分治与递归

白东程子末军 HANDONG UNIVERSITY OF TECIINOLOGY 计算机算法设计与分析 Design and Analysis of Computer Algorithms 第二章递归与分治策哈
计算机算法设计与分析 Design and Analysis of Computer Algorithms 第二章 递归与分治策略

山东程子太军 学习要点: SHANDONG UNIVERSITY OF TECHNOLOOY 3会诗3会合3会学3华A多器察 ·理解递归的概念。 掌握设计有效算法的分治策略。 通过下面的范例学习分治策略设计技巧。 ()二分搜索技术; (2)大整数乘法; ● (3)Strassen矩阵乘法; (4)棋盘覆盖; (5)合并排序和快速排序; ● (6) 线性时间选择; ● (7) 最接近,点对问题; (8) 循环赛日程表。 2025年4月3日 2
2025年4月3日 2 • 理解递归的概念。 • 掌握设计有效算法的分治策略。 • 通过下面的范例学习分治策略设计技巧。 • (1)二分搜索技术; • (2)大整数乘法; • (3)Strassen矩阵乘法; • (4)棋盘覆盖; • (5)合并排序和快速排序; • (6)线性时间选择; • (7)最接近点对问题; • (8)循环赛日程表。 学习要点:

归东程子末军 算法总体思想 SHANDONG UNIVERSITY OF TECHNOLOGY 器会空点会器空会的是 ●将要求解的较大规模的问题分割成k个更小规模的子问题。 对这k个子问题分别求解。如果子问题的规模仍然不够小, 则再划分为k个子问题,如此递归的进行下去,直到问题规 模足够小,很容易求出其解为止。 T(n) T(n/2) T(n/2) T(n/2) T(n/2) 2025年4月3日 3
2025年4月3日 3 ⚫ 将要求解的较大规模的问题分割成k个更小规模的子问题。 算法总体思想 n T(n/2) T(n/2) T(n/2) T(n/2) T(n) = ⚫ 对这k个子问题分别求解。如果子问题的规模仍然不够小, 则再划分为k个子问题,如此递归的进行下去,直到问题规 模足够小,很容易求出其解为止

算法总体思想 白东程子太军 SHANDONG UNIVERSITY OF TECINOLOGY 3会清会空会察 ●将求出的小规模的问题的解合并为一个更大规 模的问题的解,自底向上逐步求出原来问题的 解。 T(n) (n/4(n/4(n/4T(n/4)T(n/4(n/4T(n/4T(n/4)T(n/4T(n/4T(n/4(n/4)T(n/4T(n/4(n/4(n/4) 2025年4月3日
2025年4月3日 4 算法总体思想 ⚫ 将求出的小规模的问题的解合并为一个更大规 模的问题的解,自底向上逐步求出原来问题的 解。 n T(n) = n/2 T(n/4)T(n/4)T(n/4)T(n/4) n/2 T(n/4)T(n/4)T(n/4)T(n/4) n/2 T(n/4)T(n/4)T(n/4)T(n/4) n/2 T(n/4)T(n/4)T(n/4)T(n/4)

归本程子太军 SHANDONG UNIVERSITY OF TECHNOLOGY 会合会点会器空深会是会品 分治法的设计思想是,将一个难以直接解决的大 问题,分割成一些规模较小的相同问题,以便各 个击破,分而治之。 凡治众如治寡,分数是也。 孙子兵法 2025年4月3日
2025年4月3日 5 分治法的设计思想是,将一个难以直接解决的大 问题,分割成一些规模较小的相同问题,以便各 个击破,分而治之。 凡治众如治寡,分数是也。 -孙子兵法

山东程上太军程 提纲 SHANDONG UNIVERSITY OF TECHNOLOOY 华会会学3会华深会 一、递归的概念 二、分治法的基本思想 三、分治法的应用 2025年4月3日 6
2025年4月3日 6 提纲 一、递归的概念 二、分治法的基本思想 三、分治法的应用

G 归东置子太军 提纲 SHANDONG UNIVERSITY OF TECHNOLOGY 一、 递归的概念 二、分治法的基本思想 三、分治法的应用 2025年4月3日
2025年4月3日 7 提纲 一、递归的概念 二、分治法的基本思想 三、分治法的应用

白本程子太程 递归的概念 SHANDONG UNIVERSITY OF TECINOLOGY 器会清的合实点会3冷华品品条 直接或间接地调用自身的算法称为递归算法。 用函数自身给出定义的函数称为递归函数。 ● 由分治法产生的子问题往往是原问题的较小 模式,这就为使用递归技术提供了方便。在 这种情况下,反复应用分治手段,可以使子 问题与原问题类型一致而其规模却不断缩小, 最终使子问题缩小到很容易直接求出其解。 这自然导致递归过程的产生。 ● 分治与递归像一对孪生兄弟,经常同时应用 在算法设计之中,并由此产生许多高效算法。 下面来看几个实例。 2025年4月3日 8
2025年4月3日 8 递归的概念 ⚫ 直接或间接地调用自身的算法称为递归算法。 用函数自身给出定义的函数称为递归函数。 ⚫ 由分治法产生的子问题往往是原问题的较小 模式,这就为使用递归技术提供了方便。在 这种情况下,反复应用分治手段,可以使子 问题与原问题类型一致而其规模却不断缩小, 最终使子问题缩小到很容易直接求出其解。 这自然导致递归过程的产生。 ⚫ 分治与递归像一对孪生兄弟,经常同时应用 在算法设计之中,并由此产生许多高效算法。 下面来看几个实例

归本程子末军 一、递归的概念 SHANDONG UNIVERSITY OF TECHNOLOGY 例1阶乘函数 边界条件 n= n=0 n(n-1)川 n>0 递归方程 ●边界条件与递归方程是递归 函数的二个要素。递归函数只 int factorial(int n) 有具备了这两个要素,才能在 if (n==0)return 1; 有限次计算后得出结果。 return n*factorial(n-1); 2025年4月3日 9
2025年4月3日 9 一、递归的概念 例1 阶乘函数 0 0 ( 1)! 1 ! = − = n n n n n 边界条件 递归方程 int factorial(int n) { if (n==0) return 1; return n*factorial(n-1); } ⚫边界条件与递归方程是 递归 函数的二个要素。递归函数只 有具备了这两个要素,才能在 有限次计算后得出结果

白东程子太军 一、递归的概念 HANDONG UNIVERSITY OF TECINOLOGY 华会诗3会学S会深公器 ●例2 Fibonacci数列 无穷数列1,1,2,3,5,8,13,21,34,55,.,称为 Fibonaccia数列。递归定义为: 边界条件 1 n=0 F(n)= n=1 F(n-1)+F(n-2)n>=2 递归方程 int fibonacci(int n) if (n <1)return 1; return fibonacci(n-1)+fibonacci(n-2); 2025年4月3日 10
2025年4月3日 10 一、递归的概念 ⚫ 例2 Fibonacci数列 无穷数列1,1,2,3,5,8,13,21,34,55,.,称为 Fibonacci数列。递归定义为: int fibonacci(int n) { if (n <= 1) return 1; return fibonacci(n-1)+fibonacci(n-2); } 边界条件 2 递归方程 1 0 ( 1) ( 2) 1 1 ( ) = = = − + − = n n n F n F n F n
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 山东理工大学:《计算机算法设计与分析》课程教学课件(PPT讲稿)第三章 动态规划 Dynamic Programming.ppt
- 山东理工大学:《计算机算法设计与分析》课程教学课件(PPT讲稿)第四章 贪心算法 Greedy Algorithm.ppt
- 山东理工大学:《计算机算法设计与分析》课程教学课件(PPT讲稿)第五章 回溯算法 Backtrack Algorithm.ppt
- 山东理工大学:《计算机算法设计与分析》课程教学课件(PPT讲稿)第六章 分支限界法 Branch-and-Bound Algorithm.ppt
- 《编译原理》课程教学资源(教材和参考书)编译原理-清华张素琴-第2版.pdf
- 《编译原理》课程教学资源(教材和参考书)编译原理-陈火旺-第3版.pdf
- 《编译原理》课程教学课件(PPT讲稿,2022)ch1-引论 Principles of Compiler.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch2-文法和语言.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch3-词法.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch4-自顶而下语法分析方法.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch6-LR分析.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch7-8-语法制导翻译和中间代码生成1/2.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch7-8-语法制导翻译和中间代码生成2/2.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch9-目标程序运行时的存储组织.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch10-代码优化.ppt
- 《编译原理》课程教学课件(PPT讲稿,2022)ch10-目标代码生成.ppt
- 《编译原理》课程教学课件(PPT讲稿)第六章 自顶向下语法分析.ppt
- 《编译原理》课程教学课件(PPT讲稿)chap1 引论 Principles of Compiler.ppt
- 《编译原理》课程教学课件(PPT讲稿)第四章 自顶向下语法分析.ppt
- 《JAVA语言程序设计》课程教学课件(PPT讲稿)第10章 多线程.ppt
- 山东理工大学:《计算机算法设计与分析》课程教学课件(PPT讲稿)第一章 算法概述概述(主讲:王红霞).ppt
- 山东理工大学:《计算机算法设计与分析》课程教学课件(PPT讲稿)第零章 算法课程简介 Design and Analysis of Computer Algorithms.ppt
- 山东理工大学:《计算机算法设计与分析》课程教学课件(PPT讲稿)哈夫曼编码 Huffman Coding.ppt
- 《计算机网络》课程教学资源(PPT课件)第九章 无线网络和移动网络.ppt
- 《计算机网络》课程教学资源(PPT课件)第八章 互联网上的音频和视频服务.ppt
- 《计算机网络》课程教学资源(PPT课件)第七章 网络安全.ppt
- 《计算机网络》课程教学资源(PPT课件)第六章 应用层.ppt
- 《计算机网络》课程教学资源(PPT课件)第五章 运输层.ppt
- 《计算机网络》课程教学资源(PPT课件)第四章 网络层.ppt
- 《计算机网络》课程教学资源(PPT课件)第三章 数据链路层.ppt
- 《计算机网络》课程教学资源(PPT课件)第二章 物理层.ppt
- 《计算机网络》课程教学资源(PPT课件)第一章 概述.ppt
- 《编译原理》课程教学课件(2023讲稿)cha01 引论.pdf
- 《编译原理》课程教学课件(2023讲稿)cha02-1 文法和语言.pdf
- 《编译原理》课程教学课件(2023讲稿)cha02-1 文法和语言——阅读.pdf
- 《编译原理》课程教学课件(2023讲稿)cha02-2 文法和语言_短语直接短语句柄.pdf
- 《编译原理》课程教学课件(2023讲稿)cha03 词法分析(NFA确定化最小化DFA).pdf
- 《编译原理》课程教学课件(2023讲稿)cha03 词法分析.pdf
- 《编译原理》课程教学课件(2023讲稿)cha04 自顶向下语法分析方法 讲授.pdf
- 《编译原理》课程教学课件(2023讲稿)cha04 自顶向下语法分析方法.pdf
