版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黑龙江东方学院《食品保藏原理与技术》2023-2024学年第一学期期末试卷
- 黑龙江大学《影视创作与改编研究》2023-2024学年第一学期期末试卷
- 黑龙江大学《水灾害防治》2023-2024学年第一学期期末试卷
- 我的学校演讲稿五篇
- 黑龙江大学《热工与供热工程》2022-2023学年第一学期期末试卷
- 黑龙江大学《课程论》2022-2023学年第一学期期末试卷
- 2024年化旱厕建设服务协议版
- 2024年协议提前解除协议版
- 2024年短视频制作与发布服务协议版
- 2024年度环保项目监管服务协议版
- 阜阳职业技术学院2024年教师招聘招聘历年高频500题难、易错点模拟试题附带答案详解
- 2024-2025学年人教版数学三年级上册 第三单元 测量 单元测试卷(含答案)
- 2024新信息科技三年级第四单元:创作数字作品大单元整体教学设计
- TBIA 22-2024 骨科疾病诊疗数据集-颈椎退行性疾病
- 考研英语模拟试题一
- 2024至2030年中国油茶行业发展策略分析及投资前景研究报告
- 《人工智能与大数据技术》高职全套教学课件
- 2024年新苏教版六年级上册科学全册知识点(超全)
- 统编版语文四年级上册第五单元 跟作家学写作 把事情写清楚单元任务群整体公开课一等奖创新教学设计
- TLCM组装贴合制程工艺介绍-
- DL∕T 1909-2018 -48V电力通信直流电源系统技术规范
评论
0/150
提交评论