版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年秋招:东部机场集团面试题及答案
- T/CAFFCI 88-2025化妆品用原料 伊利水云母
- 《谱时代强音》教学设计-2026-2027学年鲁教版(五四学制)(新教材)初中美术六年级上册
- 人教版二年级数学下册《找规律》
- 8.3-实现天气手环功能- 上
- 2026年河北唐山中国水电首郡3营销方案
- 云南省多校联考2026届高三上学期9月月考语文试卷(含答案)
- 工程设计丶制造与材料选择课件
- 开学第一课班会记录
- 医院输血科年终考核试题及答案
- 水利工程液压式启闭机检修技术规程
- 照顾老人合同协议书
- 2025中考英语第07讲 阅读理解之议论文(讲义)(原卷版)
- 污水处理复合碳源乙酸钠项目可行性研究报告写作模板-拿地申报
- 2024年全国企业人力资源管理师之三级人力资源管理师考试进阶提升题(详细参考解析)
- 教师如何利用人工智能提升教学效果心得体会
- 眼科专科护理应急预案
- 贵州省建筑工程施工资料管理导则
- 广州地铁在线测评题
- 心怀国防梦争做好少年国防教育日小学生国防教育主题班会
- 龙源科孚德(电气二代)变流器故障排查手册V1.0
评论
0/150
提交评论