算法习题PPT格式课件下载.pptx

上传人:b****2 文档编号:15596235 上传时间:2022-11-07 格式:PPTX 页数:43 大小:333.61KB
下载 相关 举报
算法习题PPT格式课件下载.pptx_第1页
第1页 / 共43页
算法习题PPT格式课件下载.pptx_第2页
第2页 / 共43页
算法习题PPT格式课件下载.pptx_第3页
第3页 / 共43页
算法习题PPT格式课件下载.pptx_第4页
第4页 / 共43页
算法习题PPT格式课件下载.pptx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

算法习题PPT格式课件下载.pptx

《算法习题PPT格式课件下载.pptx》由会员分享,可在线阅读,更多相关《算法习题PPT格式课件下载.pptx(43页珍藏版)》请在冰豆网上搜索。

算法习题PPT格式课件下载.pptx

logn3;

10log3n.解解:

3n2+10n=(n2);

n2/10+2n=(2n);

21+1/n=

(1);

logn3=(logn);

10log3n=(n);

1-2试论试论O

(1)与与O

(2)的区别的区别.答答:

没有区别没有区别,因为根据定义因为根据定义1=O

(2),2=O

(1)第第1章章概论概论1-4

(1)假设某算法在输入规模为假设某算法在输入规模为n时的计算时间为时的计算时间为T(n)=32n.在某台计算机在某台计算机上上实现并完成该算法的时间为实现并完成该算法的时间为t秒秒.现有另一台计算机现有另一台计算机,其运行速度是第一台的其运行速度是第一台的64倍倍,那么在这台新机器上用同一算法在那么在这台新机器上用同一算法在t秒内能解输入规模为多大的问题秒内能解输入规模为多大的问题?

(2)若上述算法的计算时间改进为若上述算法的计算时间改进为T(n)=n2,其余条件不变其余条件不变,则在新机器上用则在新机器上用t秒秒时间能解输入规模为多大的问题时间能解输入规模为多大的问题?

(3)若上述算法的计算时间改进为若上述算法的计算时间改进为T(n)=8,其余条件不变其余条件不变,那么在新机器上用那么在新机器上用t秒时间能解输入规模为多大的问题秒时间能解输入规模为多大的问题?

解解:

设机器设机器1上上t秒能解的问题规模为秒能解的问题规模为n1,机器机器2上上t秒能解的问题规模为秒能解的问题规模为n2.

(1)由由t=32n1=32n2/64知知,n2=n1+6,所以规模增大所以规模增大6.

(2)由由t=n12=n22/64知知,n2=8n1,所以规模增大所以规模增大7倍倍.(3)若若t8则则n1可以任意大可以任意大,若若t1/8则则n2可以任意大可以任意大.第第2章章分治分治2-8设设n个不同的整数排好序后存于个不同的整数排好序后存于T1:

n中中.若存在一个下标若存在一个下标i,1in,使得使得Ti=i.设计一个有效算法找到这个下标设计一个有效算法找到这个下标.要求算要求算法在最坏情况下的计算时间法在最坏情况下的计算时间O(logn).解解:

不同整数意味着要么严格递增不同整数意味着要么严格递增,要么严格递减要么严格递减若若T1:

n严格递减严格递减,则则Tii(Tji蕴含蕴含jj)满足二分法条件满足二分法条件,可用二分搜索可用二分搜索若若T1:

n严格递增严格递增,Tii蕴含蕴含ji(Tjj),Tii0蕴含蕴含ji(Tjn/2时时,称称x为主元素为主元素.设计一个线性时间算法设计一个线性时间算法,确定确定T0:

n-1是否有一个主元素是否有一个主元素.算法算法1:

性质性质:

若数列有主元素若数列有主元素,则中位数必为主元素则中位数必为主元素.先找中位数先找中位数a,即第即第(n+1)/2大的数大的数,在计数在计数a出现次数出现次数.若若a出现次数大于出现次数大于n/2,则则a即为主元素即为主元素;

否则无主元素否则无主元素.找中位数时间找中位数时间O(n),计数计数a出现次数时间出现次数时间O(n).算法算法2:

若数列有主元素若数列有主元素,则去掉两个不同数则去掉两个不同数,主元素不变主元素不变.1.p=T0,ct=1,i=1,/p记可能主元素记可能主元素,ct为计数器为计数器,2.当当ifs,则则fs+=fs-Xi+ci4.输出输出fn第第3章章动态规划动态规划2.石子合并问题石子合并问题问题描述问题描述:

在一个圆形操场的四周摆放着在一个圆形操场的四周摆放着n堆石子堆石子.现在要将石子有次序地合并现在要将石子有次序地合并成一堆成一堆.规定每次只能选相邻的规定每次只能选相邻的2堆石子合并成一堆堆石子合并成一堆,并将新的一堆石子数记为该并将新的一堆石子数记为该次合并的得分次合并的得分.试设计一个算法试设计一个算法,计算出将计算出将n堆石子合并成一堆的最小得分和最大堆石子合并成一堆的最小得分和最大得分得分.算法设计算法设计:

对于给定对于给定n堆石子堆石子,计算合并成一堆的最小得分和最大得分计算合并成一堆的最小得分和最大得分.数据输入数据输入:

由文件由文件input.txt提供输入数据提供输入数据.文件的第文件的第1行是正整数行是正整数n,1n100,表表示有示有n堆石子堆石子.第第2行有行有n个数个数,分别表示分别表示n堆石子的个数堆石子的个数.结果输出结果输出:

将计算结果输出到文件将计算结果输出到文件output.txt,文件第文件第1行是最小得分行是最小得分,第第2行是最行是最大得分大得分.输入文件示例输入文件示例input.txt44459输出文件示例输出文件示例output.txt4354第第3章章动态规划动态规划先讨论直线上石子合并问题的算法先讨论直线上石子合并问题的算法动规动规,子结构子结构i:

j,OSP,类似于矩阵连乘问题类似于矩阵连乘问题定义定义mi,j为从第为从第i堆到第堆到第j堆的石子合并能得到的最少分数堆的石子合并能得到的最少分数,那么那么mi,j=minmi,k+mk+1,j+sumi:

j|ikt,则则mi,j=t;

si,j=k;

输出输出m1,n,合并次序合并次序Traceback(i,j,s)1.若若i=j,打印打印ai2.否则否则打印打印“(”3.Traceback(i,si,j,s)4.打印打印“+”4.Traceback(si,j+1,j,s)5.打印打印“)”第第3章章动态规划动态规划再讨论圆周上的石子合并问题再讨论圆周上的石子合并问题,子结构子结构i:

j稍作修改稍作修改定义定义milen为合并第为合并第i堆到第堆到第i+len-1堆石子能得到的最少分数堆石子能得到的最少分数当当i+len-1n时时,指跨过第指跨过第n堆到第堆到第(i+len-1)%n堆堆,仅仅sum函数需要修改函数需要修改milen=minmik+mi+klen-k+sumi:

i+len-1|0kt,则则milen=t;

silen=k;

输出输出minmin|1in类似可以类似可以打印合并次序打印合并次序由加速原理加速由加速原理加速第第3章章动态规划动态规划3.数字三角形问题数字三角形问题问题描述问题描述:

给定一个有给定一个有n行数字组成的数字三角形行数字组成的数字三角形,如下图所示如下图所示.试设计一个算法试设计一个算法,计算出从三角形的顶至底的一条路径计算出从三角形的顶至底的一条路径,使该路径经过的数字和最大使该路径经过的数字和最大.算法设计算法设计:

对于给定的对于给定的n行数字组成的三角形行数字组成的三角形,计算从三角形顶至底的路径经过计算从三角形顶至底的路径经过的数字和的最大值的数字和的最大值.数据输入数据输入:

由文件由文件input.txt提供输入数据提供输入数据.文件的第文件的第1行数字三角形的行数行数字三角形的行数n,1n100.接下来接下来n行是数字三角形各行中的数字行是数字三角形各行中的数字.所有数字在所有数字在099之间之间.结果输出结果输出:

将计算结果输出到文件将计算结果输出到文件output.txt,文件第文件第1行中的数是计算出的最大行中的数是计算出的最大值值.输入文件示例输入文件示例input.txt5738810274445265输出文件示例输出文件示例output.txt30738810274445265数字三角形数字三角形第第3章章动态规划动态规划动规动规,两种方式两种方式,自顶向下自顶向下,自底向上自底向上自顶向下自顶向下定义定义mi,j为从第为从第1行到第行到第i行第行第j列能得到的最大分数列能得到的最大分数,那么那么mi,j=ai,j+maxmi-1,j,mi-1,j-1,当当ji;

=0,当当ji或或j=0.1.m2:

n=0,m1=a1,1,m0=0,2.对对i=2:

n3.对对j=i:

14.若若mj-1mj,则则mj=mj-15.mj+=ai,j6.输出输出maxmj|1jn第第3章章动态规划动态规划动规动规,两种方式两种方式,自顶向下自顶向下,自底向上自底向上自底向上自底向上定义定义mi,j为从第为从第1行到第行到第i行第行第j列能得到的最大分数列能得到的最大分数,那么那么mi,j=ai,j+maxmi+1,j,mi+1,j+1,当当ji1.对对j=1:

n,mj=an,j,2.对对i=n-1到到13.对对j=1到到i4.若若mj+1mj,则则mj=mj+15.mj+=ai,j,6.输出输出m1第四章第四章贪心贪心1.字符字符ah出现的频率恰好是前出现的频率恰好是前8个个Fibonacci数数,它们的它们的Huffman编码是什么编码是什么?

将结果推广到将结果推广到n个字符的频率恰好是前个字符的频率恰好是前n个个Fibonacci数的情形数的情形.解解:

根据根据ah的频率的频率,画出画出Huffman编码树如右图编码树如右图所以各字符编码为所以各字符编码为:

h:

1,g:

01,f:

001,e:

0001,d:

00001,c:

000001,b:

0000001,a:

0000000,推广到推广到n个符号的情形个符号的情形.记第记第i个符号为个符号为i,则则fi=fi-1+fi-2由数学归纳法易证明由数学归纳法易证明sumi=1kfim,是在前是在前m位男运动员已配对的情况下位男运动员已配对的情况下,男运动员男运动员i配对其她女运动员的上界配对其她女运动员的上界定义函数定义函数Upb(m,x)=f(m+1,m,x)+f(m+2,m,x)+f(n,m,x).当前当前m位男运动员已配对的情况下位男运动员已配对的情况下,cs+Upb(m,x)是余下情况配对的上界是余下情况配对的上界,由此可以设计剪枝由此可以设计剪枝(限制限制)条件条件cs+Upb(m,x)bests注注1:

有的同学没有设计剪枝条件有的同学没有设计剪枝条件,这不能体现回溯的优势这不能体现回溯的优势.注注2:

有同学使用有同学使用csn,返回返回2.对对j=i:

n3.|交换交换xi,xj,cs+=Pixi*Qxii,4.|若若cs+Upb(m,x)bests,5.|若若csbests,则则bests=cs,6.|backtrace(i+1)6.|cs-=Pixi*Qxii,交换交换xi,xj,主程序执行主程序执行backtrack

(1)即可即可女女1女女2女女2男120612男241520男36125第六章第六章分支限界分支限界在解最大团问题的优先队列式分支限界法中在解最大团问题的优先队列式分支限界法中,当前扩展节点满足当前扩展节点满足cn+n-ibestn的右儿子节点被插入到优先队列中的右儿子节点被插入到优先队列中.如果将这个条件改为满足如果将这个条件改为满足cn+n-ibestn右儿右儿子节点插入优先队列仍能满足算法正确性吗子节点插入优先队列仍能满足算法正确

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

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1