- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法设计与分析学号:120410101姓名:陈颖萍班级:1204101日期:2014.01.01实验题目11-1问题描述:括号检验:输入一个代数表达式,表达式只能含有+,—,*,/,1,2,3,4,5,6,7,8,9,0字符且每个数字均小于10,设表达式除括号外匹配有误外,再无其他错误。编写算法对输入的表达式进行检验,判断括号匹配是否正确。正确的: 错误的:1+2+4 (1+)2(1+2)+4 (1+2(4+3))(1+2) (1+2+3*(4+5())) 1+2+3*(4+5))1-2问题分析:编写算法对输入的表达式进行检测,判断括号匹配是否正确。如果对于输入的表示能按照正确的优先级将最终结果求出那么表达式肯定是正确的。而如果要求出最终结果,效率会低,那么对运算过程进行简化,按照所给的表达式推导出最终可以求出结果那么表达式肯定是正确的,括弧肯定匹配。?1-3策略选择:采用蛮力法,从右向左处理表达式一旦出现错误的情况直接输出不匹配退出,否则继续进行处理直至表达式结束。用栈作为存储结构约定优先级。Stack?S,OP;??S存储运算符,OP存储参与运算的数字。遇到‘(’、数字,时直接压入相应的栈中,当遇到+、-、*、/操作符是先把栈S中的栈顶元素取出比较相应的优先级,若当前操作符的优先级低与栈顶的则进行一次运算。不断计算直至符合结束条件。1-4模型:采用信息数字化的方法,用栈作为存储结构约定优先级。Stack?S,OP;??S存储运算符,OP存储参与运算的数字。遇到‘(’、数字,时直接压入相应的栈中,当遇到+、-、*、/操作符是先把栈S中的栈顶元素取出比较相应的优先级,若当前操作符的优先级低与栈顶的则进行一次运算。由于问题要求的是单位数而进行相应的运算后可能会变成小数,或多位数,若对其进行处理会麻烦,则默认运算后结果是1,将以压入相应的栈中。若在运算过程中不能进行或不可操作则说明表达式不正确。1-5时间及空间复杂度分析1-6算法描述(流程图):1-7算法实现:1-8测试及说明:1-9总结实验题目22-1问题描述:?某售货员要到若干城市去推销商品,已知个城市之间的路程(或旅费)。要选择一条从驻地出发,经过每一个城市一遍,最后回到驻地的路线,使总的路线最小。问题的解为从一个带权图中找到一个包含所有顶点的回路,且该回路的权值之和最小。用邻接矩阵存储图。2-2问题分析:该问题可以用邻接矩阵存储图,图的下标表示两个城市,图的权值表示两城市间的路程,此时的邻接矩阵是关于主对角线对称的。在此问题中要设定NoEdge =-1来表示当两个城市间无通路时邻接矩阵存储的值,方便在连接结点时进行判断。2-3策略选择:采用蛮力枚举的递归法,递归出口为i=n+1表示到达第n+1层也就是最后一个结点,此时完成了递归。递归公式为Traveling(i+1,n),表示继续判断下一个结点是否能连接。2-4模型:采用递归公式的抽象的方法,问题的解为含有N个节点的一条回路,可以尝试将所有的路径都找出来找到权值之和最小的一条路径就为问题的解。向当前求解的路径中不断加入新的节点,当节点数为N时一条新的回路产生。可以路径的长度为控制量,用递归的方法求解所有的路径,如果有边与前一顶点相连且此点之前距离和仍小于最小值,那么可以选择这条路径,继续递归直至达到递归出口。2-5时间及空间复杂度分析时间复杂度:T(log2n)空间复杂度:S(n2)2-6算法描述(流程图):2-7算法实现:#include iostreamusing namespace std;const int NoEdge=-1;//表示两城市间不通const int MAX=20;int G[MAX][MAX];int ans[MAX],x[MAX];int bestc,cc;void init(int n,int m){int i,j,len,t;memset(G,NoEdge,sizeof(G));//将图的加权邻接矩阵初始化为-1cout请输入城市间的路程endl;for(t=1;t=m;t++){cinij;cinlen;G[i][j]=len;//给加权邻接矩阵赋值G[j][i]=len;}for(i=1;i=n;i++) x[i]=i;bestc=-1;//0x7fffffff表示赋权值无限大,也可以是INT_MAX常量cc=0;//当前路程}void Swap(int i,int j){int t;t=i;i=j;j=t;}void Traveling(int i,int n){int j;if(i==n+1)//递归到n+1层时x[n
您可能关注的文档
最近下载
- 电厂 电气维修培训课件.ppt VIP
- 电气设备操作与检修安全课件.ppt VIP
- 2025曲靖供电局及所属县级供电企业项目制用工招聘(55人)笔试备考试题及答案解析.docx VIP
- 雷克萨斯-Lexus RX-产品使用说明书-RX200t-AGL20L-AWTGZC2-RX200tOM_OM48E46C_01-1509-00.pdf VIP
- 基于Glauert法的风力机叶片设计设计说明书论文.docx VIP
- 企业法律知识培训讲座培训课件——房地产法律合规与风险管控(1).pptx VIP
- 2025南方电网保山供电局项目制用工招聘(3人)笔试备考试题及答案解析.docx VIP
- 大学生五四青年课活动策划书范文 - 172校园活动网.doc VIP
- 烹调工艺学全套教学课件.pptx
- 新时达电梯控制系统AS380S随机图纸RH0000741;国标20;非18芯;V1.0.pdf
文档评论(0)