算法设计 郑宇军 石海鹤 陈胜勇 算法设计(第3章)

算法设计 郑宇军 石海鹤 陈胜勇 算法设计(第3章)

ID:43748631

大小:1.44 MB

页数:32页

时间:2019-10-13

算法设计 郑宇军 石海鹤 陈胜勇 算法设计(第3章)_第1页
算法设计 郑宇军 石海鹤 陈胜勇 算法设计(第3章)_第2页
算法设计 郑宇军 石海鹤 陈胜勇 算法设计(第3章)_第3页
算法设计 郑宇军 石海鹤 陈胜勇 算法设计(第3章)_第4页
算法设计 郑宇军 石海鹤 陈胜勇 算法设计(第3章)_第5页
资源描述:

《算法设计 郑宇军 石海鹤 陈胜勇 算法设计(第3章)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章蛮力法3.1字符串匹配3.2矩阵相乘3.3子集和问题3.4冒泡排序3.5若干最优化问题蛮力法一些问题只能采用蛮力法去求解蛮力法设计简单,用其求解一些小问题也是可接受的3.1字符串匹配输入:两个字符串T和P输出:T中P首次出现的位置(T中不包含P则返回−1)T(Text),P(Pattern)3.1字符串匹配蛮力法:从左到右扫描T,检查T中是否含有子串Pmicrosofwindowstsoft3.1字符串匹配蛮力法:从左到右扫描T,检查T中是否含有子串Pmicrosofwindowstsoft3.1字符

2、串匹配蛮力法:从左到右扫描T,检查T中是否含有子串Pmicrosofwindowstsoft3.1字符串匹配蛮力法:从左到右扫描T,检查T中是否含有子串Pmicrosofwindowstsoft3.1字符串匹配蛮力法:从左到右扫描T,检查T中是否含有子串Pmicrosofwindowstsoft3.1字符串匹配蛮力法:从左到右扫描T,检查T中是否含有子串Pmicrosofwindowstsoft匹配成功,返回位置索引53.1字符串匹配[字符串匹配算法]AlgorithmBrute_Match(T,P:str

3、ing)beginleti=0,n=

4、T

5、,m=

6、P

7、;while(i≤n−m)doletj=0;while(j

8、A

9、

10、,(n,p)=

11、B

12、,C=newint[m,p];fori=0tom-1doforj=0top−1dofork=0ton−1doC[i,j])C[i,j]+A[i,k]*B[k,j];returnC;end时间复杂度O(mnp):不存在改进可能3.3子集和问题输入:一组n个整数的集合S,以及一个目标数z输出:判断是否存在S的一个子集S*,其元素之和等于z3.3子集和问题蛮力法:检查S的每个子集S’,直至找到一个元素之和等于z的子集,失败则返回空集。时间复杂度O(2n)[子集和问题的蛮力算法]Algori

13、thmBrute_Subset(z:int;S:int[])beginforeachS’Powerset(S)doif(Sum(S’)=z)thenreturnS';returnΦ;end3.4冒泡排序冒泡排序过程令k=1;fori=1tonkdoif(A[i1]>A[i])thenA[i1]↔A[i]当k=n时算法结束;否则令k=k+1,转第2步[排序问题]输入:任意一个长度为n的数组A输出:这组数的一个重排列A′,其满足A′[0]≤A′[1]≤…≤A′[n−1]3.4冒泡排序[冒泡排序算法]Al

14、gorithmBubbleSort(A:int[])beginletn=

15、A

16、;fork=1ton-1dofori=1ton−kdoif(A[i-1]>A[i])then(A[i-1],A[i])(A[i],A[i-1]);end时间复杂度O(n2)3.5若干最优化问题最优化问题:在问题的可行域F中找到一个解x,使得某目标函数值f(x)最小或最大。约束条件:解x应满足某项约束c(x)=true连续优化问题:解的数量可能有无穷多组合优化问题:解的数量有限时,总是可以用蛮力法求解,但算法效率可能很低。3.5若

17、干最优化问题最近点对问题0-1背包问题最优子集和问题最大独立集和最小顶点覆盖旅行商问题3.5.1最近点对问题输入:二维平面上n个点的集合P输出:其中距离最近的两个点3.5.1最近点对问题蛮力法:计算出P中所有顶点对之间的距离,并取其中距离最小的一对顶点。时间复杂度O(n2):存在改进可能?[最近点对问题的蛮力算法]AlgorithmBrute_ClosetPoints(P:Point[])beginletd_best=+∞,n=

18、P

19、,a=b=-1;fori=0ton-2doforj=i+1ton-1dol

20、et(dx,dy)=(P[i].x-P[j].x,P[i].y-P[j].y);d=dx*dx+dy*dy;if(d

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。