版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Lecture1
IntroductionOverview1.Introduction (a)WhatareAlgorithms? (b)DesignofAlgorithms. (c)AnalysisofAlgorithms.2.Complexity (a)Asymptoticanalysis,OandΘ. (b)Orderofgrowth.Whatarealgorithms?Analgorithmisawell-definedfinitesetofrulesthatspecifiesasequentialseriesofelementaryoperationstobeappliedtosomedatacalledtheinput,producingafterafiniteamountoftimesomedatacalledtheoutput.Analgorithmsolvessomecomputationalproblem.Algorithms(alongwithdatastructures)arethefundamental“buildingblocks”fromwhichprogramsareconstructed.Onlybyfullyunderstandingthemisitpossibletowriteveryeffectiveprograms.CharacteristicsofalgorithmsAllalgorithmsmustsatisfythefollowingcriteria: (1)Input:Therearezeroormorequantitiesthatareexternallysupplied. (2)Output:Atleastonequantityisproduced. (3)Definiteness(確定性):Eachinstructionisclearandunambiguous. (4)Finiteness(有窮性):Ifwetraceouttheinstructionsofanalgorithm,thenforallcases,thealgorithmterminatesafterfinitenumberofsteps. (5)Effectiveness(有效性):Everyinstructionmustbebasicenoughtobecarriedout,inprinciple,byapersonusingonlypencilandpaper.AlgorithmdesignandanalysisAnalgorithmicsolutiontoacomputationalproblemwillusuallyinvolvedesigninganalgorithm,andthenanalysingitsperformance.DesignAgoodalgorithmdesignermusthaveathoroughbackgroundknowledgeofalgorithmictechniques,butespeciallysubstantialcreativityandimagination.AnalysisAgoodalgorithmanalystmustbeabletocarefullyestimateorcalculatetheresources(time,spaceorother)thatthealgorithmwillusewhenrunning.Thisrequireslogic,careandoftensomemathematicalability.Theaimofthiscourseistogiveyousufficientbackgroundtounderstandandappreciatetheissuesinvolvedinthedesignandanalysisofalgorithms.DesignandanalysisIndesigningandanalysinganalgorithmweshouldconsiderthefollowingquestions: 1.Whatistheproblemwehavetosolve? 2.Doesasolutionexist? 3.Canwefindasolution(algorithm),andistheremorethanonesolution? 4.Isthealgorithmcorrect? 5.Howefficientisthealgorithm?Algorithmdesignandanalysis--anexampleTheFibonaccisequenceisthesequenceofintegersstarting: 1,1,2,3,5,8,13,21,34,55,...Theformaldefinitionis: F1=F2=1andFn=Fn?1+Fn?2.PleasedeviseanalgorithmtocomputeFn.AnaiverecursivesolutionAnaivesolutionistosimplywritearecursivemethodthatdirectlymodelstheproblem.Isthisagoodalgorithm/programintermsofresourceusage?Timingitona(2005)iMacgivesthefollowingresults(thetimeisinsecondsandisforaloopcalculatingFn10000times).intfib(intn){
return
(n<
3
?
1
:fib(n-1)
+fib(n-2));}AnaiverecursivesolutionHowlongwillittaketocompute F30,F40orF50?Exercise:Showthenumberofmethodcallsmadetofib()is2Fn-1?1.AniterativealgorithmWfib(intn)
{
intf_2;
/*F(i+2)*/
intf_1=
1;
/*F(i+1)*/
intf_0=
1;
/*F(i)*/
for
(int
i
=
1;
i
<n;
i++)
{
/*F(i+2)=F(i+1)+F(i)*/f_2=f_1+f_0;
/*F(i)=F(i+1);F(i+1)=F(i+2)*/f_0=f_1;f_1=f_2;
}
returnf_0;}AmatrixalgorithmWehavethefollowingequation:UseMathematicalInduction: Basis:Forn=2, Inductivestep:Ifn=k,theequationholds,thenAmatrixalgorithm Bothsidesmultiplyby[1,1;1,0],weget Thus,theequationholdsforn=k+1.Usetheideaofdivide-and-conquerAlittlemore…GeneraltermformulaProveituseinduction.Hardtoimplement.EvaluatingalgorithmsCorrectness 1.Theoreticalcorrectness 2.NumericalstabilityEfficiency 1.Time 2.SpaceAnalgorithmisefficientifitusesasfewresourcesaspossible.Inmanysituationsthereisatrade-offbetweentimeandspace,inthatanalgorithmcanbemadefasterifitusesmorespaceorsmallerifittakeslonger.Althoughathoroughanalysisofanalgorithmshouldconsiderbothtimeandspace,timeisconsideredmoreimportant.NumericalstabilityYoucanbefairlycertainofexactresultsfromacomputerprogramprovidedallarithmeticisdonewiththeintegers
Z={...,?3,?2,?1,0,1,2,3,...}andyouguardcarefullyaboutanyoverflow.Howeverthesituationisentirelydifferentwhentheprobleminvolvesrealnumber,becausethereisnecessarilysomeround-offerrorwhenrealnumbersarestoredinacomputer.Afloatingpointrepresentationofanumberinbase"withprecisionpisarepresentationoftheform.Accumulationoferrors#include<stdio.h>intmain(){
doublet=
0.1;
for
(int
i
=
0;
i
<
20;
i++)
{
printf("%.16lf\n",t);t+=
0.1;
}
return
0;}MeasuringtimeHowshouldwemeasurethetimetakenbyanalgorithm?Wecandoitexperimentallybymeasuringthenumberofsecondsittakesforaprogramtorun—thisisoftencalledbenchmarkingandisoftenseeninpopularmagazines.Thiscanbeuseful,butdependsonmanyfactors:Themachineonwhichitisrunning.Thelanguageinwhichitiswritten.Theskilloftheprogrammer.Theinstanceonwhichtheprogramisbeingrun,bothintermsofsizeandwhichparticularinstanceitis.Soitisnotanindependentmeasureofthealgorithm,butratherameasureoftheimplementation,themachineandtheinstance.ComplexityThecomplexityofanalgorithmisa“device-independent”measureofhowmuchtimeitconsumes.Ratherthanexpressingthetimeconsumedinseconds,weattempttocounthowmany“elementaryoperations”thealgorithmperformswhenpresentedwithinstancesofdifferentsizes.Theresultisexpressedasafunction,givingthenumberofoperationsintermsofthesizeoftheinstance.Thismeasureisnotaspreciseasabenchmark,butmuchmoreusefulforansweringthekindofquestionsthatcommonlyarise:Iwanttosolveaproblemtwiceasbig.Howlongwillthattakeme?Wecanaffordtobuyamachinetwiceasfast?Whatsizeofproblemcanwesolveinthesametime?Theanswerstoquestionslikethisdependonthecomplexityofthealgorithm.DifferentinstancesofthesamesizeWehaveassumedthatthealgorithmtakesthesameamountoftimeoneveryinstanceofthesamesize.Butthisisalmostnevertrue,andsowemustdecidewhethertodobestcase,worstcaseoraveragecaseanalysis.Inbestcaseanalysisweconsiderthetimetakenbythealgorithmtobethetimeittakesonthebestinputofsizen.Inworstcaseanalysisweconsiderthetimetakenbythealgorithmtobethetimeittakesontheworstinputofsizen.Inaveragecaseanalysisweconsiderthetimetakenbythealgorithmtobetheaverageofthetimestakenoninputsofsizen.Anexample-InsertionsortLines2-7willbeexecutedntimes,lines4-5willbeexecuteduptojtimesforj=1ton.AsymptoticnotationsBig-Onotation:Itdefinesanasymptoticupperboundforafunctionf(n).
Definition:Afunctionf(n)issaidtobeO(g(n))ifthereareconstantscandn0suchthat
f(n)≤cg(n),?n≥n0.Big-Omeganotation():Itdefinesanasymptoticlowerboundforafunctionf(n).Big-Thetanotation:Itdefinesanasymptoticupperandlowerboundforafunctionf(n). Definition:Afunctionf(n)issaidtobe(g(n))ifthereareconstantsc1,c2andn0suchthat 0≤c1g(n)≤f(n)≤c2g(n),?n≥n0.Ifwesaythatf(n)=(n2)thenweareimplyingthatf(n)isapproximatelyproportionalton2forlargevaluesofn.Asymptoticnotationsf(n)=(
g(n))nn0c1g(n)c2g(n)f(n)Thereexistpositiveconstantsc1andc2suchthatthereisapositiveconstantn0suchthat…f(n)=O(
g(n))nn0f(n)cg(n)Thereexistpositiveconstantscsuchthatthereisapositiveconstantn0suchthat…f(n)=(
g(n))nn0cg(n)f(n)Thereexistpositiveconstantscsuchthatthereisapositiveconstantn0suchthat…OrderofgrowthAsymptoticnotations:,O,,o,.Theconstantcoefficient(s)areignored.Lowerorderitem(s)areignored,justkeepthehighestorderitem.Therateofgrowth,ortheorderofgrowth,possessesthehighestsignificance.Theinsertionsortrunsin(n2).f(n)=(g(n))actuallymeans:f(n)
(g(n))。Typicalorderofgrowth:O(1),O(logn),O(n),O(n),O(nlogn),O(n2),O(n3),O(2n),O(n!).What’sthecomplexityofeachFibalgorithm?ApproximationforfactorialsStirling’sapproximation
Arithmetic
operationO(f(n))+O(g(n))=
O(max{f(n),g(n)});O(f(n))+O(g(n))=
O(f(n)+g(n));O(f(n))*O(g(n))=
O(f(n)*g(n));O(cf(n))=
O(f(n));g(n)=O(f(n))O(f(n))+O(g(n))=
O(f(n))。Orderofgrowth2nn2nlognnlognfnAnasymptoticallybettersortingalgorithm:Merge-sortAnalysisoftheMerge-sortalgorithmDescribedbyrecursiveequationSupposeT(n)istherunningtimeonaproblemofsizen.T(n)=(1)ifnnc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《湖湘文學(xué)教育論》課件
- 《竹與中國文化》課件
- 小學(xué)一年級(jí)10到20加減法練習(xí)題口算
- 防校園欺凌講座心得體會(huì)
- 《病例神經(jīng)內(nèi)科》課件
- 服裝行業(yè)前臺(tái)服務(wù)要點(diǎn)
- 礦產(chǎn)行業(yè)人才培養(yǎng)總結(jié)
- 課堂氛圍與學(xué)習(xí)積極性提升計(jì)劃
- 家政服務(wù)行業(yè)客服工作總結(jié)
- 安徽省宿州市埇橋區(qū)教育集團(tuán)2022-2023學(xué)年九年級(jí)上學(xué)期期末質(zhì)量檢化學(xué)試題
- 2022年人美版美術(shù)六年級(jí)上冊教案全一冊
- DB44∕T 1379-2014 化妝刷-行業(yè)標(biāo)準(zhǔn)
- 幼兒專注力訓(xùn)練-運(yùn)筆練習(xí)-連線練習(xí)-可打印(共26頁)
- 超外差調(diào)幅收音機(jī)課設(shè)報(bào)告——內(nèi)蒙古工業(yè)大學(xué)
- 3.2熔化和凝固-人教版八年級(jí)上冊課件(21張PPT)pptx
- 2017衢州新城吾悅廣場開業(yè)安保方案
- 名師工作室考核評(píng)價(jià)表.doc
- 公司宣傳品管理辦法1
- 人教版(PEP)小學(xué)英語六年級(jí)上冊各單元知識(shí)點(diǎn)歸納(三年級(jí)起點(diǎn))
- 工作分析案例
- 現(xiàn)代CMOS工藝基本流程
評(píng)論
0/150
提交評(píng)論