版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Labreport
Course:ClassLibrariesandDataStructures
Semester:1stsemesteroftheacademicyear2021-2022
Major:SoftwareEngineering
Class:2020
StudentName:温长银
StudentID:222020321062106
Teacher:ZHAO,Hengjun(赵恒军)
SchoolofComputerandInformationScience
NameTimeComplexityandRuntimeAnalysis
DateOct11,2021Type^Confirmatory
瓯esign
□Comprehensive
1.Objective&Requirements
a)Understandthetheoreticaltimecomplexityofanalgorithmand
knowhowtoanalyzeit
b)Grasptheuseofrandomnumbersandtechniquesformeasuring
executiontimeinC++
c)Graspruntimeanalysisofprogramstoshowtheeffectof
theoreticalcomplexityonthetimecostofrealprogramsby
runningprogramsandmeasuringthetimecost
2.Experimentalenvironment(platformandsoftware)
Windows7(orhigherversions)+VisualStudio2010(orhigher
versions)
1)Experimentalcontentanddesign(MainContent,Procedure,
CodesandResults)
Task1
1.Youareprovidedwithatemplatecontainerbasedonsingly
linkedlist.Pleasereadthesourcecodeandimplementanew
methodAddTail()thatcanaddanewelementattheendof
thelinkedlist.
2.YouareprovidedwithaCompanyandEmployeeclass.Please
implementtwomethodsfortheCompanyclassi.e.
•voidinputEmployeeHead(intn);
•voidinputEmployeeTail(intn);
Theintegernisthemethodargumentthatspecifiesthe
totalnumberofemployeetoinput.inputEmployeeHead()is
basedonAddHead()andinputEmployeeTail()isbasedon
AddTail().Foreachnewemployee,itsnameisofformat
“Employee+ID”,e.g."Employeel23",anditsgrosspay
isarandomlygeneratedinteger.
3.Usingruntimeanalysistomeasurethetimecostsof
inputEmployeeHeadandinputEmployeeTailbyincreasingthe
totalnumberofemployeen,e.g.n=1000,2000,10000,
20000,100000,andsoon.Recordthetimecostsofthe
twomethodsforeachn.Plotthedatainafigureandtrytofit
thedatausingacurve(数据拟合,曲线拟合)。
4.Analyzethetheoreticaltimecomplexityof
inputEmployeeHeadandinputEmployeeTail.Compareyour
theoreticalanalysistotheexperimentaldatayouobtained.
Stepl.
readthesourcecodeandimplementanewmethodAddTail()thatcan
addanewelementattheendofthelinkedlist.
Step2:
implementtwomethodsfortheCompanyclassi.e.
•voidinputEmployeeHead(intn);
•voidinputEmployeeTail(intn);
Theintegernisthemethodargumentthatspecifiesthe
totalnumberofemployeetoinput.inputEmployeeHead()is
basedonAddHead()andinputEmployeeTail()isbasedon
AddTail().Foreachnewemployee,itsnameisofformat
“Employee+ID”,e.g."Employeel23",anditsgrosspay
isarandomlygeneratedinteger.
^defineNULL0
template<classT>
classListTemp
(
private:
structNode
(
Tdata;
Node*next;
};
Node*head;
intsize;
public:
ListTempO;
“ListTemp();
intgetLengthOconst;
boolisEmpty0const;
voidAddHead(constT&newData);
voidAddTail(constT&newData);
);
template<classT>
ListTemp<T>::ListTemp0
(
head=NULL;
size=0;
)
template<classT>
ListTemp<T>::^ListTempO
(
Node*current=head;
Node*temp=NULL;
while(current!=NULL)
(
temp=current;
current=current->next;
deletetemp;
)
)
template<classT>
intListTemp<T>::getLengthOconst
returnsize;
)
template<classT>
boolListTemp<T>::isEmptyOconst
(
returnsize==0;
)
template<classT>
voidListTemp<T>::AddHead(constT&newData)
(
Node*temp=newNode;
temp->next=head;
temp->data=newData;
head=temp;
size++;
)
template<classT>
voidListTemp<T>::AddTail(constnewl);ii(i)
(
//pleaseimplementthis
Node*temp=newNode;
temp->data=newData;
Node*ptr=head;
while((ptr->next)!=NULL)
ptr=ptr->next;
temp->next=NULL;
ptr->next=temp;
size++;
}
#endif
^include“company,h”
ttinclude<iostream>
usingnamespacestd;
voidCompany::inputEmployeellead(intn)
(
//pleaseimplementthis
for(inti=0;i<n;i++)
(
srand((unsignedint)time(0));
strings="Employee”;
stringres=s+to_string(n);
intpay=rand();
Employeeemp(res,pay);
container.AddHead(emp);
)
)
voidCompany::inputEmployeeTail(intn)
(
for(inti=0;i<n;i++)
(
srand((unsignedint)time(0));
strings="Employee”;
stringres=s+to_string(n);
intpay=rand();
Employeeemp(res,pay);
container.AddTail(emp);
)
)
^includeTistTemp.h"
ttinclude"company,h”
ttinclude<ctime>
#include<ioslream>
usingnamespacestd;
intmainO
(
clockibeginl,endl,timel,begin2,end2,time2;
for(intnum=1000;num<100000;num+=1500)
(
Companyemp;
beginl=clock();
emp.inputEmployeeHead(num);
endl=clock();
timel=endl-beginl;
begin2=clock();
emp.inputEmployeeTai1(num);
end2=clock0;
time2=end2-begin2;
cout<<timel<<endl;
cout<<time2<<endl;
)
return0;
)
Result:
HEAD:
X
LinearmodelPolyl:
f(x)=pl*x+p2
Coefficients(with95%confidencebounds):
pl=10.21(9.848,10.57)
p2=-3.495(-7.818,0.8281)
Goodnessoffit:
SSE:353.1
R-square:0.9949
AdjustedR-square:0.9946
RMSE:4.429
Tail:
10000
A5000-
•yvs.x
_.44untitledfit1
o—।iiiiii।
2468101214161820
X
LinearmodelPoly2:
f(x)=pl*xA2+p2*x+p3
Coefficients(with95%confidencebounds):
pl=30.39(28.25,32.54)
p2=-119.2(-165.5,-72.94)
p3=286.8(75.83,497.9)
Goodnessoffit:
SSE:3.072e+05
R-square:0.9984
AdjustedR-square:0.9982
RMSE:134.4
AnswerforAdditionalquestions
Ifthenewnodeisinsertedintothetailofthecurrentlinkedlist,thetimecomplexity
isthesameasthatoftheheaderinsertionmethod.
3.Resultanalysisanddiscussion(Analysisofexperimentalresults
andsumminguptheharvestandtheexistingproblems)
Theheadinsertionmethodisusedtoestablishasinglelinkedlist.Theorderof
readingdataisoppositetotheorderofelementsinthegeneratedlinkedlist.The
insertiontimeofeachnodeis0(1).Ifthelengthofthesinglelinkedlistisn,thetotal
timecomplexityis0(n).
Toestablishasinglelinkedlistbyheadinterpolation,youneedtotraversethe
linkedlist.Theinsertiontimeofeachnodeis0(n).Ifthelengthofthesinglelinked
listisn,thetotaltimecomplexityisO(n2)
UndertheguidanceofMr.Zhao,1un
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025高考数学考点剖析精创专题卷八-平面解析几何【含答案】
- 二零二五年度股权转让与关联交易信息披露协议3篇
- 2024年清远职业技术学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 二零二五年防水材料企业战略联盟与合作开发合同3篇
- 第一章日本茶道历史概述培训课件
- 人民币系列知识完美版教学提纲
- 三章烯烃教程文件
- 2024年阳高县人民医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 2024年阜阳市鼓楼医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 二零二五年度钣金喷漆行业培训与认证合同
- 2024年6月高考地理真题完全解读(安徽省)
- 吸入疗法在呼吸康复应用中的中国专家共识2022版
- 1-35kV电缆技术参数表
- 信息科技课程标准测(2022版)考试题库及答案
- DL∕T 1909-2018 -48V电力通信直流电源系统技术规范
- 2024年服装制版师(高级)职业鉴定考试复习题库(含答案)
- 门诊部缩短就诊等候时间PDCA案例-课件
- NB-T32042-2018光伏发电工程建设监理规范
- 2024年安全员-C证考试题库及答案(1000题)
- 电解水制氢装置安全操作注意事项
- 2024年交管12123学法减分试题库大全(有图有答案)
评论
0/150
提交评论