算法实验报告,二分搜索,矩阵联乘,最长公共子序列.doc_第1页
算法实验报告,二分搜索,矩阵联乘,最长公共子序列.doc_第2页
算法实验报告,二分搜索,矩阵联乘,最长公共子序列.doc_第3页
算法实验报告,二分搜索,矩阵联乘,最长公共子序列.doc_第4页
算法实验报告,二分搜索,矩阵联乘,最长公共子序列.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告实验一:一、 实验名称二分搜索法二、 实验目的编写程序实现用二分法在一有序序列中查找一个数三、 实验内容1、 程序源代码#includeint Research(int a,int x,int n)int left=0,right=n-1,mid;if(n0&x=a0)while(leftright)mid=(left+right+1)/2;if(xamid)right=mid-1;elseleft=mid;if(x=aleft)return left;return -1;void Input()int a30,n,i,j,x;printf(输入数组长度 n :);scanf(%d,&n);printf(输入有序数组(升序):nn);for(i=0;i=0)printf(%d 在数组中的下标为 %d!nn,x,j);elseprintf(没找到!nn);main()Input();2、 实验结果输入数组长度 n :5输入有序数组(升序):a0:1a1:3a2:5a3:7a4:9输入要查询的数字:6没找到!Press any key to continue输入数组长度 n :4输入有序数组(升序):a0:1a1:2a2:3a3:4输入要查询的数字:22 在数组中的下标为 1!Press any key to continue实验二一、 实验名称矩阵连乘求最小计算次数二、 实验目的编写程序用动态规划法计算矩阵连乘的最优值三、 实验内容1、 实验源代码#include #define MAX 100int main() int pMAX,i,j,k,r,t,n; int mMAXMAX; /记录从第i到第j个矩阵连乘的最少计算次数int sMAXMAX; /记录从第i到第j个矩阵连乘的断开位置printf(输入连乘矩阵的个数:);scanf(%d,&n); for(i=0;in;i+)printf(输入第%d个矩阵行数:,i+1);scanf(%d,&pi); /读入pi的值(注意:p0到pn共n+1项) printf(输入第%d个矩阵列数:,n);scanf(%d,&pn); for(i=1;i=n;i+) /初始化mii=0 mii=0; for(r=1;rn;r+) /r为i、j相差的值 for(i=1;in;i+) /i为行 j=i+r; /j为列 mij=mi+1j+pi-1*pi*pj; /给mij赋初值 sij=i; for(k=i+1;kj;k+) t=mik+mk+1j+pi-1*pk*pj; if(tmij) mij=t; /mij取最小值 sij=k; printf(最少计算次数:%dnn,m1n); 2、 实验结果输入连乘矩阵的个数:6输入第1个矩阵行数:30输入第2个矩阵行数:35输入第3个矩阵行数:15输入第4个矩阵行数:5输入第5个矩阵行数:10输入第6个矩阵行数:20输入第6个矩阵列数:25最少计算次数:15125Press any key to continue实验三:一、 实验名称求最长公共子序列二、 实验目的编写程序掌握动态规划法中关于最长公共子序列的实现实验内容三、实验内容1、 实验源代码#include #include void LCSLength(int m, int n, char *x, char *y, int (*c)20, int (*b)20)int i,j;for(i = 0; i = m; i +)ci0 = 0;for(i = 0; i = n; i +)c0i = 0;for(i = 1; i = m; i +)for(j = 1; j = cij - 1)cij = ci - 1j;bij = 2;elsecij = cij - 1;bij = 3;void LCS(int i,int j,char *x, int (*b)20)if(i = 0 | j = 0)return;if(bij = 1)LCS(i - 1, j - 1, x, b);printf(%c,xi);else if(bij = 2)LCS(i - 1, j, x, b);elseLCS(i, j - 1, x, b);int main()char X20, Y20;int b2020,c2020;int m,n;X0 = Y0 = $;printf(请输入字符串X的内容:);gets(&X1);printf(请输入字符串Y的内容:);gets(&Y1);m = strlen(X);n = strlen(Y);printf(字符串X的长度是%d,字符串Y的长度是%dn,m,n); LCSLength(m, n, X, Y, c, b);printf(最长的公共子序列是:n);LCS(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论