- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
090213052 陈昊 计科1305 算法实验报告
实验一二分查找
实验内容:
在对线性表的操作中,经常需要查找某一个元素在线性表中的位置。此问题的输入是待查元素x和线性表L,输出为x在L中的位置或者x不在L中的信息。
实验算法:
初始化一个查找的有序数组,当待查找的数字确定以后,首先比较该数和数组中的中间的数字的大小,如果该数比中间的数子要大,则在比中间大的数组中查找,否则相反,然后递归的调用这个查找方法,知道找到这个数字相等的数字,则函数返回这个数字在数组中的位子。
实验代码:
#includestdio.h
#includeiostream
using namespace std;
int bsearch(int v){
int a[] = { 1, 2, 3, 4, 5, 6, };
int x = 0;
int y = sizeof(a)-1;
int m;
while (xy){
m = x + (y - x) / 2;
if (a[m] == v) return m;
else if (a[m]v) y = m;
else x = m + 1;
}
return -1;
}//定义二分查找函数
int main(){
int c = 0;
int v;
cin v;
bsearch(v);
cout bsearch(v) +1 endl;
if (bsearch(v) == -1)cout not endl;
else cout yes endl;
system(pause);
}
实验结果:
实验二背包问题
实验内容:
背包问题
有一个背包,背包容量是M=150。有7个物品,物品可以分割成任意大小。要求尽可能让装入背包中的物品总价值最大,但不能超过总容量。
物品ABCDEFG重量35306050401025价值10403050354030实验算法:
首先建立两个数组分别存储物品的价值和重量,然后用冒泡法对物品的单价进行排序,按照从大到小的顺序往背包中塞物品,直到背包塞不下的时候,对与最后一个物品进行分割,使背包达到最大的总价值。
实验代码:
#include iostream
#includecstdio
using namespace std;
int main()
{
float p[7] = { 10, 40, 30, 50, 35, 40, 30 };
float w[7] = { 35, 30, 60, 50, 40, 10, 25 };
int temp; float maxp;
int weight = 150;
for (int i = 6; i0; i--){
for (int j = 0; ji; j++){
if ((p[j] / w[j])(p[j + 1] / w[j + 1])){
temp = p[j];
p[j] = p[j + 1];
p[j + 1] = temp;
temp = w[j];
w[j] = w[j + 1];
w[j + 1] = temp;
}
}
}//对单价进行排序;
temp = 0; maxp = 0;
for (int i = 6; i = 0; i--){
if ((temp + w[i])weight){
temp += w[i];
maxp += p[i];
}
else if ((temp + w[i]) = weight){
maxp += (weight - temp)*(p[i] / w[i]);
cout max: maxp endl;
break;
}
}
system(pause);
}
实验结果:
实验三矩阵链乘法
实验内容:
在科学计算中经常要计算矩阵的乘积。矩阵A和B可乘的条件是矩阵A的列数等于矩阵B的行数。若A是一个p×q的矩阵,B是一个q×r的矩阵,则其乘积C=AB是一个p×r的矩阵。由该公式知计算C=AB总共需要pqr次的数乘。其标准计算公式为:
现在的问题是,给定n个矩阵{A1,A2,…,An}。其中Ai与Ai+1是可乘的,i=1,2,…,n-1。要求计算出这n个矩阵的连乘积A1A2…An。
递归公式:
实验算法:
首先令m[i,j]表示计算矩阵Ai,j所需要标量乘法次数的最小值。那么原问题就是求m[1,n],当i=j时矩阵链只包含唯一的矩阵,所以不需要任何标量乘法运算,若ij,设割点在矩阵Ak和Ak+1之间,那么,M[i,j] 就等于计算Ai,k和Ak+1,j的代价加上两者相乘的代价的最小值,即可以得到递归公式:
您可能关注的文档
- 0615_奥拉西坦稳定性研究 文献综述_1.0.doc
- 05chujiaounben_kecenyujiaoxuelunyibufen.doc
- 06-12年各省区史高考真题专题汇编(母题)专题19 历史上重大改革回眸.doc
- 06-制造业新产品发项目管理实务 - 黄永刚.docx
- 0617_和讯网—巧劲引活水 公用事业亟待多维改革.docx
- 0619-埋地钢制道液体聚氨酯补口防腐层技术规定.doc
- 0651武汉交通职学院办公用品项目电子询价文件.doc
- 066 TCL销售司业务流程和经营管理重点手册.doc
- 06MIS课程设计图书馆管理系统需求分析.doc
- 06创新企业运营机 凸现企业核心竞争优势.doc
- 0902 医疗器械册管理信息系统备案子系统使用说明.doc
- 09030137吕霞10物流管理 开题报告.doc
- 090407012物流管理人才培养存在问题及改进对策.doc
- 0909莆田市流动口计划生育服务管理规范(莆人口109号文件内容).doc
- 0908湖南大学工管理学院级本科学生综合素质测评方案.doc
- 091333_企业标管理体系(绝对实用).doc
- 09函授专科 工管理 建设工程项目管理自学周历-张蓓.doc
- 09吉利,孙婷婷-本管理方法的应用与成本管理绩效研究——基于中国国有大型铁路施工企业的问卷调查.doc
- 09_工业金属管道程施工及验收规范(条文说明)GB50235-97.doc
- 09年11月国家理规划师三级-专业能力真题.doc.doc
原创力文档


文档评论(0)