中国科学技术大学:《算法基础》课程教学资源(PPT课件讲稿)算法基础习题课(二)

Schoolof Computer Science and 7ccheologg 1958 算法基础习题课2 助教:刘倩玉 NCAA Network Computing and Advanced Algorithm Laboratory
算法基础习题课2 助教:刘倩玉 1

Schoolof Co buten Seicuac aud technology Page210151-1 。证明 T(n)=1+∑=0T0)T(0)=1 T(n)=2n 数学归纳法 a)T(0)成立 b)假设T(k)成立,推导T(k+1)成立 20221
Page210 15.1-1 2021/2/11 3 。证明 • 𝑻 𝒏 = 𝟏 + 𝒋=𝟎 𝒏−𝟏 𝑻(𝒋) 𝑻 𝟎 = 𝟏 • 𝑻 𝒏 = 𝟐 𝒏 ➢ 数学归纳法 a) T(0)成立 b) 假设T(k)成立,推导T(k+1)成立

Schoolof Co buten Seicuac aud technology Page22615.4-1 。求和的一个LCS >LCS: 20221
Page226 15.4-1 2021/2/11 4 。求和的一个LCS ➢ LCS:

Schoolof Co buten Seicuac aud technology Page22615.4-2 设计伪代码,利用完整的表c及原始序列X=和 Y=重构LCS,要求运行时间为O(m+n)不能使用表b。 解: 1. PRINT-LCS(C,X, Y,i,J) 2345 return if xli== Y[jl PRINT-LCS(C,X,Y,i-1,j-1) print xIi 789 else if cli-1,j]>=c[i,j-11 PRINT-LCS(C,X,Y,i-1,j) else PRINT-LCS(C, X,Y,i,j-1) 20221
Page226 15.4-2 2021/2/11 5 。设计伪代码,利用完整的表c及原始序列X = 和 Y=重构LCS,要求运行时间为O(m+n),不能使用表b。 解: 1. PRINT-LCS(c,X,Y,i,j) 2. if i == 0 or j == 0 3. return 4. if X[i] == Y[j] 5. PRINT-LCS(c,X,Y,i-1,j-1) 6. print X[i] 7. else if c[i-1,j] >= c[i,j-1] 8. PRINT-LCS(c,X,Y,i-1,j) 9. else 10. PRINT-LCS(c,X,Y,i,j-1)

Schoolof Co buten Seicuac aud technology Page22615.4-2 设计伪代码,利用完整的表c及原始序列X=和 Y=重构LCS,要求运行时间为O(m+n)不能使用表b。 解: PRINT-LCS(c, X,i,j) if i==0 or return 举例:X=010110110 4 fc[i-1,j-1]==c[i,j]-1 Y=1001 PRINT-LCS(c, X,i-1,J-1) c8,3]=3即100 6 print xli] c9,4]=4即1001 else if cli-1,J== cli,j c[9,4]-1=c[9-1,41]=c[8,3=3 8 PRINT-LCS(C,,i-1,J) 但Xg]的‘0’并不是LCS的构成元素 else 19 PRINT-LCS(,X,i,j-1) 20221
Page226 15.4-2 2021/2/11 6 。设计伪代码,利用完整的表c及原始序列X = 和 Y=重构LCS,要求运行时间为O(m+n),不能使用表b。 解: 1. PRINT-LCS(c,X,i,j) 2. if i == 0 or j == 0 3. return 4. if c[i-1,j-1] == c[i,j] - 1 5. PRINT-LCS(c,X,i-1,j-1) 6. print X[i] 7. else if c[i-1,j] == c[i,j] 8. PRINT-LCS(c,X,i-1,j) 9. else 10. PRINT-LCS(c,X,i,j-1) 举例:X = 0 1 0 1 1 0 1 1 0 Y = 1 0 0 1 c[8, 3] = 3 即 1 0 0 c[9, 4] = 4 即 1 0 0 1 c[9, 4] – 1 = c[9-1, 4-1] = c[8, 3] = 3 但X[9]的‘0’并不是LCS的构成元素

Schoolof Co buten Seicuac aud technology Page22615.4-5 。设计一个O(n2)时间的算法,求一个n个数的序列的最长单调递增子序列(LSs)。 思路1:类比LCS,使用数组A保存原始序列,数组B记录LIS长度,辅助数组C记矛 前驱下标 思路2:将LIS问题转换为LCS问题 1. LIS(A) n A length 23456 Initialize new array B[n]andc[n]//B[i]:以A[i结尾的LIS长度 for i =1 to n //C[i]:以A[i]结尾的LIS中A[i]的上一跳的下标 B[i]=1 C[i]=-1 for i =2 to n 8 for j=1-1 downto 1 9 if ali]=Bi 10 B[i]=B[j]+1 1 c[i]=j return b and c 20221
Page226 15.4-5 2021/2/11 7 。设计一个O(𝑛 2 )时间的算法,求一个n个数的序列的最长单调递增子序列(LIS)。 • 思路1:类比LCS,使用数组A保存原始序列,数组B记录LIS长度,辅助数组C记录 前驱下标 • 思路2:将LIS问题转换为LCS问题 1. LIS(A) 2. n = A.length 3. Initialize new array B[n] and C[n] //B[i]:以A[i]结尾的LIS长度 4. for i = 1 to n //C[i]:以A[i]结尾的LIS中A[i]的上一跳的下标 5. B[i] = 1 6. C[i] = -1 7. for i = 2 to n 8. for j = i-1 downto 1 9. if A[j] = B[i] 10. B[i] = B[j] + 1 11. C[i] = j 12. return B and C

Schoolof Co buten Seicuac aud technology Page22615.4-5 。设计一个O(n2)时间的算法,求一个n个数的序列的最长单调递增子序列(LSs)。 思路1:类比LCS,使用数组A保存原始序列,数组B记录LIS长度,辅助数组C记矛 前驱下标 思路2:将LIS问题转换为LCS问题 方法2: 原序列记为S1,S1单调递增排序后的序列记为S2,则求解S1的最长单调递增 序列问题可以转换成求解S1和S2的最长公共子序列问题。 其中,公共子序列保证了最后的序列1.是S1的子序列2.是S2的子序列(单语 递增) 20221
Page226 15.4-5 2021/2/11 8 。设计一个O(𝑛 2 )时间的算法,求一个n个数的序列的最长单调递增子序列(LIS)。 • 思路1:类比LCS,使用数组A保存原始序列,数组B记录LIS长度,辅助数组C记录 前驱下标 • 思路2:将LIS问题转换为LCS问题 方法2: 原序列记为S1,S1单调递增排序后的序列记为S2,则求解S1的最长单调递增子 序列问题可以转换成求解S1和S2的最长公共子序列问题。 其中,公共子序列保证了最后的序列 1. 是S1的子序列 2.是S2的子序列(单调 递增)

Schoolof Co buten Seicuac aud technology Page249163-1 。解释:在引理162的证明中,为什么若 xr freq=b∫eq, 则有aeg=bfeg=x:feq=y/req。 引理16.2提供的条件:afeq<=b, freq and x freq<= y freq x freq <=a.fred and y freq <=6. freq 推导出:xfeq<=a/req<= b freq x freq <=y freq <=6 freq x freq= bfreq, a,freq=b freq=x freq=y freq 20221
Page249 16.3-1 2021/2/11 9 。解释:在引理16.2的证明中,为什么若x.freq = b.freq, 则有a.freq= b.freq = x.freq= y.freq。 • 引理16.2提供的条件:a.freq <= b.freq and x.freq <= y.freq x.freq <= a.freq and y.freq <= b.freq • 推导出: x.freq<= a.freq<= b.freq x.freq<= y.freq<= b.freq 当 x.freq = b.freq,a.freq = b.freq= x.freq = y.freq

Schoolof Co buten Seicuac aud technology Page162121-2 。二叉搜索树性质与最小堆性质区别?是否可以使用最小堆性质在O仞m时间内按 序输出有n个结点树的关键字 性质区别:见定义 按序输出相当于堆排序,不可以。 20221
Page162 12.1-2 2021/2/11 10 。二叉搜索树性质与最小堆性质区别?是否可以使用最小堆性质在O(n)时间内按 序输出有n个结点树的关键字? 性质区别:见定义 按序输出相当于堆排序,不可以

Schoolof Co buten Seicuac aud technology Page1621213 。设计执行二叉搜索树中序遍历的非递归算法。 1. INORDER-TREE-WALK(T) 2. Initialize an empty stacks 3. temp T 4.While(!s empty or temp != NULL 5 while(temp NULL)f 6 s push(temp) 7, temp temp left 8 9 temp=s pop( 10. print temp. val 11. temp= temp. right 12 20221
Page162 12.1-3 2021/2/11 11 。设计执行二叉搜索树中序遍历的非递归算法。 1.INORDER-TREE-WALK(T) 2.Initialize an empty stack s. 3.temp = T 4.while(!s.empty() or temp != NULL){ 5. while(temp != NULL){ 6. s.push(temp) 7. temp = temp.left 8. } 9. temp = s.pop() 10. print temp.val 11. temp = temp.right 12.}
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《时间序列分析及应用》课程教学资源(PPT课件讲稿)第二章 时间序列的预处理.ppt
- 《计算机网络》课程教学资源(PPT课件讲稿)Chapter 04 网络层 Network Layer.ppt
- 东北大学:《可信计算基础》课程教学资源(PPT课件讲稿)第三讲 认证技术与数字签名.ppt
- Network and System Security Risk Assessment(PPT讲稿)Firewall.ppt
- 《计算模型与算法技术》课程教学资源(PPT讲稿)Chapter 8 Dynamic Programming.ppt
- 清华大学:图神经网络及其应用(PPT讲稿)Graph Neural Networks and Applications.pptx
- 《计算机网络》课程PPT教学课件(英文版)Chapter 4 物理层 PHYSICAL LAYER.pptx
- 南京大学:《数据结构 Data Structures》课程教学资源(PPT课件讲稿)Chapter 1 基本概念和算法分析.ppt
- 安徽理工大学:《算法导论》课程教学资源(PPT课件讲稿)第4章 分治法——“分”而治之.ppt
- 南京大学:《形式语言与自动机 Formal Languages and Automata》课程教学资源(PPT课件讲稿)Transition System(主讲:卜磊).pptx
- 南京大学:《编译原理》课程教学资源(PPT课件讲稿)第四章 语法分析.ppt
- 《计算机网络》课程教学资源(PPT课件讲稿)第四章 网络层.pptx
- 《ASP动态网页设计实用教程》教学资源(PPT课件讲稿)第3章 Web页面制作基础.ppt
- 《编译原理》课程教学资源(PPT课件讲稿)第四章 语法制导的翻译.ppt
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)顺序同一性的存储器模型.pptx
- 马尔可夫链蒙特卡洛算法(PPT讲稿)Hamiltonian Monte Carlo on Manifolds,HMC.pptx
- SOFT COMPUTING Evolutionary Computing(PPT讲稿).ppt
- 《计算机情报检索原理》课程教学资源(PPT课件)第五章 自动标引.ppt
- 《计算机网络》课程教学资源(PPT课件讲稿)Chapter 04 网络层 Network Layer.ppt
- 湖南科技大学:分布式工作流系统的时间管理模型研究(PPT讲稿,周春姐).ppt
- 中国科学技术大学:《计算机编程入门》课程PPT教学课件(讲稿)An Introduction to Computer Programming.ppt
- 上海交通大学:《挖掘海量数据集 Mining Massive Datasets》课程教学资源(PPT讲稿)Lecture 03 Frequent Itemsets and Association Rules Mining Massive Datasets.ppt
- 《Computer Networking:A Top Down Approach》英文教材教学资源(PPT课件讲稿,6th edition)Chapter 3 传输层 Transport Layer.ppt
- 分布式数据库系统的体系结构与设计(PPT讲稿)Architecture and Design of Distributed Database Systems.pptx
- 南京大学:Conceptual Architecture View(PPT讲稿).ppt
- 北京师范大学:《计算机应用基础》课程教学资源(PPT课件讲稿)第1章 计算机常识(主讲:马秀麟).pptx
- 《编译原理》课程教学资源(PPT课件讲稿)中间代码生成.pptx
- TTCN3工具培训(PPT讲稿)TTCN-3简介.ppt
- 《Java Web编程技术》课程教学资源(PPT课件讲稿)第4章 JDBC数据库访问技术.ppt
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)第三章 流水线技术.ppt
- 《计算机网络》课程教学资源(PPT课件讲稿)第2章 物理层.ppt
- 《计算机视觉》课程教学资源(PPT课件讲稿)基于灭点几何的深度图重建、基于焦点变换的深度图重建.ppt
- 中国科学技术大学:《数据结构及其算法》课程电子教案(PPT课件讲稿)第七章 图.pps
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)第4章 存储层次结构设计.pptx
- 大连工业大学:《计算机文化与软件基础》课程教学资源(PPT课件讲稿)绪论、计算机系统的组成、计算机中数的表示.pps
- 西安电子科技大学:《微机原理与接口技术》课程教学资源(PPT课件讲稿)第一章 数制与码制(主讲:王晓甜).pptx
- 网络应用软件(PPT课件讲稿)第一讲 客户-服务器概念、协议端口的使用、套接字API.ppt
- 《编译原理》课程教学资源(PPT课件讲稿)代码优化——全局数据流分析技术.ppt
- 《编码理论》课程电子教案(PPT课件讲稿)第二章 信息量和熵.ppt
- 计算机网络 The Network Layer(PPT课件讲稿)网络互联、Internet上的网络层.ppt